Skip to content

testing

testing #6

Workflow file for this run

name: Benchmark PR
on: pull_request
jobs:
benchmark:
runs-on: ubuntu-latest
steps:
- name: Checkout PR branch
uses: actions/checkout@v4
with:
ref: ${{ github.event.pull_request.head.ref }}
- name: Install Node.js
uses: actions/setup-node@v4
with:
node-version: 18
- name: Install dependencies
run: npm install
- name: Run benchmark on PR branch
id: pr_benchmark
run: |
PR_TIME=$(\time -f '%e' node ./benchmarks/run.js)
echo "PR_TIME=${PR_TIME}" >> $GITHUB_ENV
- name: Checkout base branch
uses: actions/checkout@v4
with:
ref: ${{ github.event.pull_request.base.ref }}
- name: Checkout head benchmarks
run: |
git fetch origin ${{ github.event.pull_request.head.ref }}:refs/remotes/origin/${{ github.event.pull_request.head.ref }}
git checkout ${{ github.event.pull_request.head.ref }}
git checkout ${{ github.event.pull_request.base.ref }} -- benchmarks
- name: Run benchmark on base branch
id: base_benchmark
run: |
cd benchmarks
BASE_TIME=$(\time -f '%e' node ./benchmarks/run.js)
echo "BASE_TIME=${BASE_TIME}" >> $GITHUB_ENV
- name: Calculate percent change
id: percent_change
run: |
percent_change=$(echo "scale=2; ((${PR_TIME}s - ${BASE_TIME}s) / ${BASE_TIME}s) * 100" | bc)
echo "PERCENT_CHANGE=${percent_change}" >> $GITHUB_ENV
- name: Log benchmark results
run: |
echo "PR_TIME=${PR_TIME}"
echo "BASE_TIME=${BASE_TIME}"
echo "PERCENT_CHANGE=${PERCENT_CHANGE}"
- name: Find Comment
if: github.event_name == 'pull_request'
uses: peter-evans/find-comment@v2
id: fc
with:
issue-number: ${{ github.event.pull_request.number }}
comment-author: "github-actions[bot]"
body-includes: Benchmark Results
- name: Comment on PR with benchmark results
uses: peter-evans/create-or-update-comment@v2
with:
comment-id: ${{ steps.fc.outputs.comment-id }}
issue-number: ${{ github.event.pull_request.number }}
body: |
## Benchmark Results
| Benchmark | PR Branch Time | Base Branch Time | Percent Change |
|---------------|-----------------|------------------|----------------|
| Total Time | ${PR_TIME}s | ${BASE_TIME}s | ${PERCENT_CHANGE}% |
edit-mode: replace