Skip to content

Bench

Bench #4

Workflow file for this run

name: Bench
# Benchmarks run nightly (and on demand), off the PR-blocking path: the harness
# is noisy on shared runners, so we capture numbers for trend/regression review
# rather than gate merges on them. Each run uploads the BENCH_JSON lines so a
# committed baseline + diff can be layered on later.
on:
schedule:
- cron: "0 7 * * *" # daily at 07:00 UTC
workflow_dispatch:
# Least privilege: read the repo, upload artifacts via the Actions runtime token.
permissions:
contents: read
jobs:
bench:
name: Benchmarks (ReleaseFast)
runs-on: ubuntu-latest
timeout-minutes: 20
steps:
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
with:
persist-credentials: false
- uses: mlugg/setup-zig@d1434d08867e3ee9daa34448df10607b98908d29 # v2
with:
version: "0.16.0"
- name: Run benchmarks
run: zig build bench | tee bench-results.txt
- name: Extract machine-readable results
run: grep '^BENCH_JSON' bench-results.txt > bench-results.jsonl || true
- name: Upload benchmark results
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4
with:
name: bench-results
path: |
bench-results.txt
bench-results.jsonl