perf-nightly #48
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: perf-nightly | |
| # Scheduled, Docker-free timing regression evidence. Machine-dependent timing | |
| # stays outside push and pull-request gates; the deterministic allocation action | |
| # remains in the native full verifier. | |
| on: | |
| schedule: | |
| - cron: "42 3 * * *" | |
| workflow_dispatch: | |
| permissions: | |
| contents: read | |
| jobs: | |
| perf-regression-check: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v7 | |
| - name: Set up Go | |
| uses: actions/setup-go@v7 | |
| with: | |
| go-version-file: go.mod | |
| cache-dependency-path: go.sum | |
| - name: Build ze-perf | |
| run: CGO_ENABLED=0 go build -tags ze_perf -o bin/ze-perf ./cmd/ze | |
| # An empty history is not a regression. Once records exist, the committed | |
| # binary owns the comparison and its non-zero verdict fails this job. | |
| - name: Perf regression check | |
| run: | | |
| if [ -s test/perf/history/ze.ndjson ]; then | |
| bin/ze-perf track --check test/perf/history/ze.ndjson | |
| else | |
| echo "no perf history (test/perf/history/ze.ndjson); nothing to check" | |
| fi |