feat: add docker deploy

This commit is contained in:
Luca Burgard 2024-04-28 01:39:26 +02:00
parent d0de8d882a
commit 0d0f82447c
1 changed files with 77 additions and 0 deletions

View File

@ -0,0 +1,77 @@
on:
workflow_call:
inputs:
name:
type: string
required: true
MAVEN_USER:
type: string
required: true
SERVER_HOST:
type: string
required: true
SERVER_USER:
type: string
required: true
DEPLOY_PATH:
type: string
required: true
secrets:
MAVEN_SECRET:
required: true
SERVER_KEY:
required: true
jobs:
build:
name: Build
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up JDK
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'temurin'
- name: Install Maven
run: sudo apt update && sudo apt-get install maven -y
- name: Prepare Maven credentials
uses: s4u/maven-settings-action@v2.6.0
with:
servers: |
[{
"id": "repo",
"username": "${{ vars.MAVEN_NAME }}",
"password": "${{ secrets.MAVEN_SECRET }}"
}]
- name: Build with Maven
run: mvn clean install
- name: Build Docker image
run: docker build -t ${{ vars.name }} .
- name: Save Docker image as tar
run: docker save ${{ vars.name }} -o ${{ vars.name }}.tar
- name: Transfer Docker image to server
uses: appleboy/scp-action@master
with:
host: ${{ vars.SERVER_HOST }}
username: ${{ vars.SERVER_USER }}
key: ${{ secrets.SERVER_KEY }}
source: "${{ vars.name }}.tar"
target: "${{ vars.DEPLOY_PATH }}$/{{ vars.name }}.tar"
- name: SSH into server and load Docker image
uses: appleboy/ssh-action@master
with:
host: ${{ vars.SERVER_HOST }}
username: ${{ vars.SERVER_USER }}
key: ${{ secrets.SERVER_KEY }}
script: "| docker load -i ${{ vars.DEPLOY_PATH }}/${{ vars.name }}.tar"