name: Java CI with Maven on: push: branches: [ develop, main ] pull_request: branches: [ develop, main ] jobs: build: runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v4 - name: Set up JDK 17 uses: actions/setup-java@v4 with: java-version: '17' distribution: 'temurin' cache: maven - name: Build with Maven run: mvn clean compile - name: Run tests run: mvn test - name: Generate test coverage report run: mvn jacoco:report - name: Check code coverage run: mvn jacoco:check - name: Upload coverage reports to Codecov uses: codecov/codecov-action@v3 with: files: ./target/site/jacoco/jacoco.xml flags: unittests name: codecov-umbrella fail_ci_if_error: false - name: Archive test results if: always() uses: actions/upload-artifact@v3 with: name: test-results path: target/surefire-reports/ - name: Archive code coverage results uses: actions/upload-artifact@v3 with: name: code-coverage-report path: target/site/jacoco/