Compare commits

..

13 Commits

4 changed files with 149 additions and 5 deletions

View File

@ -11,8 +11,6 @@ on:
MAVEN_SECRET: MAVEN_SECRET:
required: true required: true
permissions: read-all
jobs: jobs:
build: build:
name: Build name: Build
@ -42,4 +40,4 @@ jobs:
}] }]
- name: Build with Maven - name: Build with Maven
run: mvn clean install run: mvn clean install

View File

@ -0,0 +1,90 @@
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
env:
NAME: ${{ vars.name }}
run: |
docker build -t ${{ env.NAME }}
- name: Save Docker image as tar
env:
NAME: ${{ vars.name }}
run: |
docker save -o ${{ env.NAME }} ${{ env.NAME }}.tar
- name: Transfer Docker image to server
uses: appleboy/scp-action@master
env:
NAME: ${{ vars.name }}
DEPLOY_PATH: ${{ vars.DEPLOY_PATH }}
with:
host: ${{ vars.SERVER_HOST }}
username: ${{ vars.SERVER_USER }}
key: ${{ secrets.SERVER_KEY }}
source: ${{ env.NAME }}.tar
target: ${{ env.DEPLOY_PATH }}/${{ env.NAME }}.tar
- name: SSH into server and load Docker image
uses: appleboy/ssh-action@master
env:
NAME: ${{ vars.name }}
DEPLOY_PATH: ${{ vars.DEPLOY_PATH }}
with:
host: ${{ vars.SERVER_HOST }}
username: ${{ vars.SERVER_USER }}
key: ${{ secrets.SERVER_KEY }}
script: |
docker load -i ${{ env.DEPLOY_PATH }}/${{ env.NAME }}.tar && docker-compose down && docker-compose up -d

View File

@ -0,0 +1,43 @@
on:
workflow_call:
inputs:
name:
type: string
required: true
MAVEN_USER:
type: string
required: true
secrets:
MAVEN_SECRET:
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: Deploy with Maven
run: mvn deploy

View File

@ -11,7 +11,10 @@ on:
MAVEN_SECRET: MAVEN_SECRET:
required: true required: true
permissions: read-all permissions:
contents: read
actions: read
checks: write
jobs: jobs:
test: test:
@ -42,4 +45,14 @@ jobs:
}] }]
- name: Run tests with Maven - name: Run tests with Maven
run: mvn test run: mvn test #-Dmaven.test.failure.ignore=true
#- name: Test Report
# uses: dorny/test-reporter@v1
# if: success() || failure()
# with:
# name: Tests
# path: "**/target/surefire-reports/TEST-*.xml"
# reporter: java-junit
# fail-on-empty: 'false'
# fail-on-error: 'false'