f4937949d6
* Add timer setting * Setup benchmark code * Setup memory benchmark * Add compare function * Add result preview * Setup results preview * Simplify script for CI * Update CI * Cleanup * Temp remove fork guard * Fix stuff * Fix again * Fix quotes * Fix multiline output * Simplify title * Fix memory numbers * Remove astro bin dir * Fix gc * Add repo guards * Fix wrong call * Set max space size * Remove guard * Bump memory a bit * Organize neatly * Update readme * Try large md * Try no gc * Revert markdown and gc changes * Test sha * Try ref * Try 128mb * Set 256 * Add guard * Apply suggestions from code review Co-authored-by: Sarah Rainsberger <sarah@rainsberger.ca> * Add docs comment --------- Co-authored-by: Sarah Rainsberger <sarah@rainsberger.ca>
100 lines
3 KiB
YAML
100 lines
3 KiB
YAML
name: Benchmark
|
|
|
|
on:
|
|
issue_comment:
|
|
types: [created]
|
|
|
|
env:
|
|
TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }}
|
|
TURBO_TEAM: ${{ secrets.TURBO_TEAM }}
|
|
FORCE_COLOR: true
|
|
|
|
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:
|
|
PR-BENCH: ${{ steps.benchmark-pr.outputs.BENCH_RESULT }}
|
|
MAIN-BENCH: ${{ steps.benchmark-main.outputs.BENCH_RESULT }}
|
|
steps:
|
|
# https://github.com/actions/checkout/issues/331#issuecomment-1438220926
|
|
- uses: actions/checkout@v3
|
|
with:
|
|
persist-credentials: false
|
|
ref: refs/pull/${{ github.event.issue.number }}/head
|
|
|
|
- name: Setup PNPM
|
|
uses: pnpm/action-setup@v2
|
|
|
|
- name: Setup Node
|
|
uses: actions/setup-node@v3
|
|
with:
|
|
node-version: ${{ matrix.node-version }}
|
|
cache: "pnpm"
|
|
|
|
- name: Install dependencies
|
|
run: pnpm install
|
|
|
|
- name: Build Packages
|
|
run: pnpm run build
|
|
|
|
- name: Get bench command
|
|
id: bench-command
|
|
run: |
|
|
benchcmd=$(echo "${{ github.event.comment.body }}" | grep '!bench' | awk -F ' ' '{print $2}')
|
|
echo "bench=$benchcmd" >> $GITHUB_OUTPUT
|
|
shell: bash
|
|
|
|
- name: Run benchmark
|
|
id: benchmark-pr
|
|
run: |
|
|
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
|
|
shell: bash
|
|
|
|
# main benchmark
|
|
- uses: actions/checkout@v3
|
|
with:
|
|
persist-credentials: false
|
|
ref: "main"
|
|
|
|
- name: Install
|
|
run: |
|
|
pnpm install
|
|
|
|
- name: Build Packages
|
|
run: pnpm run build
|
|
|
|
- name: Run benchmark
|
|
id: benchmark-main
|
|
run: |
|
|
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
|
|
shell: bash
|
|
|
|
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
|
|
uses: thollander/actions-comment-pull-request@v1
|
|
with:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
pr_number: ${{ github.event.issue.number }}
|
|
message: |
|
|
${{ needs.benchmark.outputs.PR-BENCH }}
|
|
|
|
${{ needs.benchmark.outputs.MAIN-BENCH }}
|