|
|
@@ -0,0 +1,79 @@
|
|
|
+name: SonarCloud Scan (PRs triggered by maven.yml)
|
|
|
+
|
|
|
+on:
|
|
|
+ workflow_run:
|
|
|
+ workflows:
|
|
|
+ - Build
|
|
|
+ types:
|
|
|
+ - completed
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ # Allows you to run this workflow manually from the Actions tab
|
|
|
+ workflow_dispatch:
|
|
|
+
|
|
|
+jobs:
|
|
|
+ get-info:
|
|
|
+ name: "Get information about the source run"
|
|
|
+ runs-on: ubuntu-latest
|
|
|
+ if: ${{ github.actor != 'dependabot[bot]' && github.event.workflow_run.conclusion == 'success' }}
|
|
|
+ outputs:
|
|
|
+ sourceHeadRepo: ${{ steps.source-run-info.outputs.sourceHeadRepo }}
|
|
|
+ sourceHeadBranch: ${{ steps.source-run-info.outputs.sourceHeadBranch }}
|
|
|
+ sourceHeadSha: ${{ steps.source-run-info.outputs.sourceHeadSha }}
|
|
|
+ mergeCommitSha: ${{ steps.source-run-info.outputs.mergeCommitSha }}
|
|
|
+ targetCommitSha: ${{ steps.source-run-info.outputs.targetCommitSha }}
|
|
|
+ pullRequestNumber: ${{ steps.source-run-info.outputs.pullRequestNumber }}
|
|
|
+ pullRequestLabels: ${{ steps.source-run-info.outputs.pullRequestLabels }}
|
|
|
+ targetBranch: ${{ steps.source-run-info.outputs.targetBranch }}
|
|
|
+ sourceEvent: ${{ steps.source-run-info.outputs.sourceEvent }}
|
|
|
+ steps:
|
|
|
+ - name: "Get information about the origin 'CI' run"
|
|
|
+ uses: potiuk/get-workflow-origin@v1_3
|
|
|
+ id: source-run-info
|
|
|
+ with:
|
|
|
+ token: ${{ secrets.GITHUB_TOKEN }}
|
|
|
+ sourceRunId: ${{ github.event.workflow_run.id }}
|
|
|
+
|
|
|
+ sonar:
|
|
|
+ name: SonarCloud Scan
|
|
|
+ runs-on: ubuntu-latest
|
|
|
+ if: ${{ needs.get-info.outputs.sourceEvent == 'pull_request' && github.actor != 'dependabot[bot]' && github.event.workflow_run.conclusion == 'success' }}
|
|
|
+ needs: get-info
|
|
|
+
|
|
|
+ steps:
|
|
|
+ - uses: actions/checkout@v3
|
|
|
+ with:
|
|
|
+ repository: ${{ github.event.workflow_run.head_repository.full_name }}
|
|
|
+ ref: ${{ github.event.workflow_run.head_branch }}
|
|
|
+ fetch-depth: 0 # Shallow clones should be disabled for a better relevancy of analysis
|
|
|
+ - name: Set up JDK
|
|
|
+ uses: actions/setup-java@v3
|
|
|
+ with:
|
|
|
+ distribution: 'temurin'
|
|
|
+ java-version: 17
|
|
|
+
|
|
|
+ - name: Cache SonarCloud packages
|
|
|
+ uses: actions/cache@v3
|
|
|
+ with:
|
|
|
+ path: ~/.sonar/cache
|
|
|
+ key: ${{ runner.os }}-sonar
|
|
|
+ restore-keys: ${{ runner.os }}-sonar
|
|
|
+ - name: Cache Maven packages
|
|
|
+ uses: actions/cache@v3
|
|
|
+ with:
|
|
|
+ path: ~/.m2
|
|
|
+ key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }}
|
|
|
+ restore-keys: ${{ runner.os }}-m2
|
|
|
+
|
|
|
+ - name: Build and analyze (PR)
|
|
|
+ env:
|
|
|
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
|
+ SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
|
|
|
+ run: >
|
|
|
+ mvn
|
|
|
+ -Dsonar.scm.revision=${{ github.event.workflow_run.head_sha }}
|
|
|
+ -Dsonar.pullrequest.key=${{ needs.get-info.outputs.pullRequestNumber }}
|
|
|
+ -Dsonar.pullrequest.branch=${{ needs.get-info.outputs.sourceHeadBranch }}
|
|
|
+ -Dsonar.pullrequest.base=${{ needs.get-info.outputs.pullRequestNumber }}
|
|
|
+ -U -B verify org.sonarsource.scanner.maven:sonar-maven-plugin:sonar
|