diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 65eccc2971e..80f4e6f0242 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -52,6 +52,13 @@ jobs: --define sonar.skip=true --projects !java-checks-test-sources/aws,!java-checks-test-sources/default,!java-checks-test-sources/java-17,!java-checks-test-sources/spring-3.2,!java-checks-test-sources/spring-web-4.0 + # PVF: publish the concrete deployed plugin version so pvf-comment.yml can dispatch a performance-validation run into peachee-java-kotlin. + - name: Prepare PVF candidate version + if: ${{ steps.build-maven.outputs.deployed }} + uses: SonarSource/core-languages-tooling-public/prepare-pvf@master + with: + build-version: ${{ steps.build-maven.outputs.project-version }} + ruling-qa: strategy: fail-fast: false diff --git a/.github/workflows/pvf-comment.yml b/.github/workflows/pvf-comment.yml new file mode 100644 index 00000000000..11df33f4093 --- /dev/null +++ b/.github/workflows/pvf-comment.yml @@ -0,0 +1,41 @@ +name: PVF /pvf comment + +on: + issue_comment: + types: [created] + +permissions: + actions: read + contents: read + pull-requests: write + id-token: write + +concurrency: + group: pvf-comment-${{ github.event.issue.number }} + cancel-in-progress: false + queue: max + +jobs: + trigger: + if: > + github.event.issue.pull_request && + contains(fromJSON('["OWNER","MEMBER","COLLABORATOR"]'), github.event.comment.author_association) && + contains(github.event.comment.body, '/pvf') + runs-on: sonar-xs + steps: + - name: Get cross-repo dispatch token from Vault + id: secrets + uses: SonarSource/vault-action-wrapper@v3 + with: + secrets: | + development/github/token/{REPO_OWNER_NAME_DASH}-pvf-dispatch token | DISPATCH_TOKEN; + + - name: Trigger performance validation in peachee-java-kotlin + uses: SonarSource/core-languages-tooling-public/pvf-trigger@master + with: + comment: ${{ github.event.comment.body }} + pr-number: ${{ github.event.issue.number }} + target-repo: SonarSource/peachee-java-kotlin + target-ref: master + target-workflow: performance-validation-java.yml + dispatch-token: ${{ fromJSON(steps.secrets.outputs.vault).DISPATCH_TOKEN }}