mirror of
https://github.com/angular/angular.git
synced 2026-09-14 13:54:52 +08:00
ef38852213
The benchmark comparison workflow fails because it runs pnpm install
without setting up node and pnpm first. We configure the setup steps
manually so that checkouts from forks are supported.
Additionally, we update the benchmark comparison script (index.mts)
to use pnpm rather than hardcoded yarn commands to install
dependencies when checking out revisions.
(cherry picked from commit a648e8e914)
82 lines
3.2 KiB
YAML
82 lines
3.2 KiB
YAML
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@653a7d5ca8bd91d3c5cb83286063314d0b063b8e # v1.4.0
|
|
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}}
|
|
|
|
# We cannot use `angular/dev-infra/github-actions/npm/checkout-and-setup-node` here
|
|
# because it does not support checking out from a fork (as it lacks a `repository` input).
|
|
# Thus, we checkout and setup Node/pnpm manually.
|
|
- name: Install pnpm
|
|
uses: pnpm/action-setup@903f9c1a6ebcba6cf41d87230be49611ac97822e # v6.0.3
|
|
|
|
- name: Setup Node.js
|
|
uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0
|
|
with:
|
|
node-version-file: '.nvmrc'
|
|
cache: 'pnpm'
|
|
|
|
- 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}}
|