name: Sonar Analysis on: push: branches: - main pull_request: types: [ opened, synchronize, reopened ] jobs: sonar: name: Sonar Analysis runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v6 with: fetch-depth: 0 - name: Set up JDK 25 uses: actions/setup-java@v5 with: distribution: 'temurin' java-version: '25' - name: Setup Gradle uses: gradle/actions/setup-gradle@v5 - name: Cache SonarCloud packages uses: actions/cache@v5 with: path: ~/.sonar/cache key: ${{ runner.os }}-sonar restore-keys: ${{ runner.os }}-sonar - name: Run tests and generate JaCoCo report run: ./gradlew :app:test :app:jacocoTestReport - name: SonarCloud Scan env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} run: ./gradlew :app:sonar