name: Run benchmark comparison on: issue_comment: types: [created] permissions: read-all jobs: benchmark-compare: runs-on: ubuntu-latest if: ${{ github.event.issue.pull_request && startsWith(github.event.comment.body, '/benchmark-compare ')}} steps: - uses: TheModdingInquisition/actions-team-membership@057d91bb80f2976a1bc6dfab5b4ae1da9aebbd89 # v1.0 with: team: 'team' organization: angular token: ${{secrets.BENCHMARK_COMPARE_MEMBERSHIP_GITHUB_TOKEN}} exit: true # Indicate that the benchmark command was received. - uses: peter-evans/create-or-update-comment@e8674b075228eee787fea43ef493e45ece1004c9 # v5 with: comment-id: ${{github.event.comment.id}} token: '${{secrets.BENCHMARK_POST_RESULTS_GITHUB_TOKEN}}' reactions: 'rocket' - uses: alessbell/pull-request-comment-branch@aad01d65d6982b8eacabed5e9a684cd8ceb98da6 # v1.1 id: comment-branch - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: # Specify repository as the PR branch might be from a fork. repository: ${{steps.comment-branch.outputs.head_owner}}/${{steps.comment-branch.outputs.head_repo}} # Checkout the pull request and assume it being trusted given we've checked # that the action was triggered by a team member. ref: ${{steps.comment-branch.outputs.head_sha}} - run: pnpm install --frozen-lockfile - uses: angular/dev-infra/github-actions/bazel/configure-remote@ba726e7bca0b08b125ccc6f93c233749e1213c17 with: bazelrc: ./.bazelrc.user - name: Preparing benchmark for GitHub action id: info env: # Untrusted input used in an executable code, must be wrapped as an env var to prevent injections COMMENT_BODY: ${{ github.event.comment.body }} run: pnpm benchmarks prepare-for-github-action "$COMMENT_BODY" - run: pnpm benchmarks run-compare ${{steps.info.outputs.compareSha}} ${{steps.info.outputs.benchmarkTarget}} id: benchmark name: Running benchmark - uses: peter-evans/create-or-update-comment@e8674b075228eee787fea43ef493e45ece1004c9 # v5 with: issue-number: ${{github.event.issue.number}} token: '${{secrets.BENCHMARK_POST_RESULTS_GITHUB_TOKEN}}' body: | ## Benchmark Test Results **Test**: `${{steps.info.outputs.benchmarkTarget}}` ### PR (${{steps.info.outputs.prHeadSha}}) ${{steps.benchmark.outputs.workingStageResultsText}} ### Compare Ref (${{steps.info.outputs.compareSha}}) ${{steps.benchmark.outputs.comparisonResultsText}}