2022-10-03 15:11:20 -05:00
|
|
|
name: Benchmark
|
|
|
|
|
|
|
|
on:
|
|
|
|
issue_comment:
|
|
|
|
types: [created]
|
2023-03-01 09:02:35 -05:00
|
|
|
workflow_dispatch:
|
2022-10-03 15:11:20 -05:00
|
|
|
|
2022-10-03 15:29:56 -05:00
|
|
|
env:
|
|
|
|
TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }}
|
|
|
|
TURBO_TEAM: ${{ secrets.TURBO_TEAM }}
|
|
|
|
FORCE_COLOR: true
|
|
|
|
|
2022-10-03 15:11:20 -05:00
|
|
|
jobs:
|
|
|
|
benchmark:
|
|
|
|
if: ${{ github.repository_owner == 'withastro' && github.event.issue.pull_request && startsWith(github.event.comment.body, '!bench') }}
|
|
|
|
runs-on: ubuntu-latest
|
|
|
|
permissions:
|
|
|
|
contents: read
|
|
|
|
outputs:
|
2023-03-01 03:46:06 -05:00
|
|
|
PR-BENCH: ${{ steps.benchmark-pr.outputs.BENCH_RESULT }}
|
|
|
|
MAIN-BENCH: ${{ steps.benchmark-main.outputs.BENCH_RESULT }}
|
2022-10-03 15:11:20 -05:00
|
|
|
steps:
|
2024-10-10 09:35:22 -05:00
|
|
|
- name: Check if user has write access
|
|
|
|
uses: lannonbr/repo-permission-check-action@2.0.2
|
|
|
|
with:
|
|
|
|
permission: write
|
|
|
|
env:
|
|
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
|
|
|
2023-03-01 03:46:06 -05:00
|
|
|
# https://github.com/actions/checkout/issues/331#issuecomment-1438220926
|
2024-02-09 01:35:00 -05:00
|
|
|
- uses: actions/checkout@v4
|
2022-10-03 15:11:20 -05:00
|
|
|
with:
|
|
|
|
persist-credentials: false
|
2023-03-01 03:46:06 -05:00
|
|
|
ref: refs/pull/${{ github.event.issue.number }}/head
|
2022-10-03 15:11:20 -05:00
|
|
|
|
2022-10-28 13:36:50 -05:00
|
|
|
- name: Setup PNPM
|
2024-02-28 23:49:07 -05:00
|
|
|
uses: pnpm/action-setup@v3
|
2022-10-28 13:36:50 -05:00
|
|
|
|
|
|
|
- name: Setup Node
|
2024-02-09 01:35:00 -05:00
|
|
|
uses: actions/setup-node@v4
|
2022-10-03 15:11:20 -05:00
|
|
|
with:
|
2024-11-27 10:59:58 -05:00
|
|
|
node-version: 22
|
2023-02-24 10:52:43 -05:00
|
|
|
cache: "pnpm"
|
2022-10-28 13:36:50 -05:00
|
|
|
|
|
|
|
- name: Install dependencies
|
|
|
|
run: pnpm install
|
2022-10-03 15:11:20 -05:00
|
|
|
|
2022-10-03 15:29:56 -05:00
|
|
|
- name: Build Packages
|
|
|
|
run: pnpm run build
|
|
|
|
|
2023-03-01 03:46:06 -05:00
|
|
|
- name: Get bench command
|
|
|
|
id: bench-command
|
2023-07-05 23:37:28 -05:00
|
|
|
env:
|
|
|
|
# protects from untrusted user input and command injection
|
|
|
|
COMMENT: ${{ github.event.comment.body }}
|
2023-03-01 03:46:06 -05:00
|
|
|
run: |
|
2023-07-05 23:37:28 -05:00
|
|
|
benchcmd=$(echo "$COMMENT" | grep '!bench' | awk -F ' ' '{print $2}')
|
2023-03-01 03:46:06 -05:00
|
|
|
echo "bench=$benchcmd" >> $GITHUB_OUTPUT
|
|
|
|
shell: bash
|
|
|
|
|
2022-10-03 15:11:20 -05:00
|
|
|
- name: Run benchmark
|
|
|
|
id: benchmark-pr
|
|
|
|
run: |
|
2023-03-01 03:46:06 -05:00
|
|
|
result=$(pnpm run --silent benchmark ${{ steps.bench-command.outputs.bench }})
|
|
|
|
processed=$(node ./benchmark/ci-helper.js "$result")
|
|
|
|
echo "BENCH_RESULT<<BENCHEOF" >> $GITHUB_OUTPUT
|
|
|
|
echo "### PR Benchmark" >> $GITHUB_OUTPUT
|
|
|
|
echo "$processed" >> $GITHUB_OUTPUT
|
|
|
|
echo "BENCHEOF" >> $GITHUB_OUTPUT
|
2022-12-06 10:19:51 -05:00
|
|
|
shell: bash
|
2022-10-03 15:11:20 -05:00
|
|
|
|
|
|
|
# main benchmark
|
2024-02-09 01:35:00 -05:00
|
|
|
- uses: actions/checkout@v4
|
2022-10-03 15:11:20 -05:00
|
|
|
with:
|
|
|
|
persist-credentials: false
|
2023-02-24 10:52:43 -05:00
|
|
|
ref: "main"
|
2022-10-03 15:11:20 -05:00
|
|
|
|
|
|
|
- name: Install
|
|
|
|
run: |
|
|
|
|
pnpm install
|
|
|
|
|
2022-10-03 15:29:56 -05:00
|
|
|
- name: Build Packages
|
|
|
|
run: pnpm run build
|
|
|
|
|
2022-10-03 15:11:20 -05:00
|
|
|
- name: Run benchmark
|
|
|
|
id: benchmark-main
|
|
|
|
run: |
|
2023-03-01 03:46:06 -05:00
|
|
|
result=$(pnpm run --silent benchmark ${{ steps.bench-command.outputs.bench }})
|
|
|
|
processed=$(node ./benchmark/ci-helper.js "$result")
|
|
|
|
echo "BENCH_RESULT<<BENCHEOF" >> $GITHUB_OUTPUT
|
|
|
|
echo "### Main Benchmark" >> $GITHUB_OUTPUT
|
|
|
|
echo "$processed" >> $GITHUB_OUTPUT
|
|
|
|
echo "BENCHEOF" >> $GITHUB_OUTPUT
|
2022-12-06 10:19:51 -05:00
|
|
|
shell: bash
|
2022-10-03 15:11:20 -05:00
|
|
|
|
|
|
|
output-benchmark:
|
|
|
|
if: ${{ github.repository_owner == 'withastro' && github.event.issue.pull_request && startsWith(github.event.comment.body, '!bench') }}
|
|
|
|
needs: [benchmark]
|
|
|
|
runs-on: ubuntu-latest
|
|
|
|
permissions:
|
|
|
|
pull-requests: write
|
|
|
|
steps:
|
|
|
|
- name: Comment PR
|
2024-02-09 01:35:00 -05:00
|
|
|
uses: peter-evans/create-or-update-comment@v4
|
2023-03-02 11:10:56 -05:00
|
|
|
continue-on-error: true
|
2022-10-03 15:11:20 -05:00
|
|
|
with:
|
2023-03-02 11:10:56 -05:00
|
|
|
issue-number: ${{ github.event.issue.number }}
|
2023-03-06 09:55:44 -05:00
|
|
|
body: |
|
2023-03-01 03:46:06 -05:00
|
|
|
${{ needs.benchmark.outputs.PR-BENCH }}
|
2023-01-06 12:01:54 -05:00
|
|
|
|
2023-03-01 03:46:06 -05:00
|
|
|
${{ needs.benchmark.outputs.MAIN-BENCH }}
|
2023-03-02 11:10:56 -05:00
|
|
|
edit-mode: replace
|