Skip to content

Adicionar checks de PR e merge com validação de testes, cobertura e quality gate #3

Adicionar checks de PR e merge com validação de testes, cobertura e quality gate

Adicionar checks de PR e merge com validação de testes, cobertura e quality gate #3

Workflow file for this run

name: PR Checks
on:
pull_request:
branches: [ "master", "main" ]
jobs:
pr-validation:
runs-on: ubuntu-latest
name: "PR Validation - Tests, Coverage & Quality Gate"
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
fetch-depth: 0 # Shallow clones should be disabled for a better relevancy of analysis
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'temurin'
- name: Cache Maven packages
uses: actions/cache@v4
with:
path: ~/.m2
key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }}
restore-keys: ${{ runner.os }}-m2
- name: Run tests and verify coverage (80% required)
run: mvn clean verify -Dmaven.test.failure.ignore=true
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v4
env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
with:
file: ./target/site/jacoco/jacoco.xml
fail_ci_if_error: false
verbose: true
- name: Cache SonarCloud packages
uses: actions/cache@v4
with:
path: ~/.sonar/cache
key: ${{ runner.os }}-sonar
restore-keys: ${{ runner.os }}-sonar
- name: Run SonarCloud analysis
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
run: mvn sonar:sonar
- name: Comment PR with coverage
if: github.event_name == 'pull_request'
uses: codecov/codecov-action@v4
env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
with:
file: ./target/site/jacoco/jacoco.xml
flags: unittests
name: codecov-umbrella
fail_ci_if_error: false