Add actions #5
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Java CI with Maven | |
on: | |
pull_request: | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Set up JDK 21 | |
uses: actions/setup-java@v4 | |
with: | |
java-version: '21' | |
distribution: 'temurin' | |
cache: maven | |
- name: Compile with maven | |
run: mvn clean compile | |
- name: Update dependency graph | |
uses: advanced-security/maven-dependency-submission-action@571e99aab1055c2e71a1e2309b9691de18d6b7d6 | |
checkstyle: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Set up JDK 21 | |
uses: actions/setup-java@v4 | |
with: | |
java-version: '21' | |
distribution: 'temurin' | |
cache: maven | |
- name: Compile with maven | |
run: mvn checkstyle:check | |
testing: | |
runs-on: ubuntu-latest | |
permissions: | |
pull-requests: write | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Set up JDK 21 | |
uses: actions/setup-java@v4 | |
with: | |
java-version: '21' | |
distribution: 'temurin' | |
cache: maven | |
- name: Compile maven project | |
run: mvn clean compile | |
- name: Test maven project | |
run: mvn test | |
- name: Add coverage to PR | |
id: jacoco | |
uses: madrapps/[email protected] | |
with: | |
paths: | | |
${{ github.workspace }}/**/target/site/jacoco/*.xml | |
token: ${{ secrets.TEST_SECRET }} | |
min-coverage-overall: 50 | |
min-coverage-changed-files: 50 | |
- name: Upload coverage report | |
uses: actions/upload-artifact@v4 | |
with: | |
name: jacoco-report | |
path: ${{ github.workspace }}/**/target/site/jacoco/ | |
- name: Fail PR if overall coverage is less than 50% | |
if: ${{ steps.jacoco.outputs.coverage-overall < 50.0 }} | |
uses: actions/github-script@v6 | |
with: | |
script: | | |
core.setFailed('Overall coverage is less than 50%!') | |
docker: | |
runs-on: ubuntu-latest | |
steps: | |
- | |
name: Checkout | |
uses: actions/checkout@v4 | |
- | |
name: Set up JDK 21 | |
uses: actions/setup-java@v4 | |
with: | |
java-version: '21' | |
distribution: 'temurin' | |
cache: maven | |
- | |
name: Package | |
run: mvn clean package | |
- | |
name: Set up QEMU | |
uses: docker/setup-qemu-action@v3 | |
- | |
name: Set up Docker Buildx | |
uses: docker/setup-buildx-action@v3 | |
- | |
name: Login to Docker Hub | |
uses: docker/login-action@v3 | |
with: | |
username: ${{ secrets.DOCKERHUB_USERNAME }} | |
password: ${{ secrets.DOCKERHUB_PASSWORD }} | |
- | |
name: Build and push | |
uses: docker/build-push-action@v5 | |
with: | |
context: ./api/. | |
push: true | |
tags: asavershin/api:latest |