Skip to content

Commit 9fc0fa3

Browse files
committed
Add CI benchmark tracking workflow
1 parent f7ff9ec commit 9fc0fa3

3 files changed

Lines changed: 45 additions & 1 deletion

File tree

.github/workflows/benchmarks.yml

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
name: benchmarks
2+
3+
on:
4+
push:
5+
branches: [master]
6+
pull_request:
7+
workflow_dispatch:
8+
9+
jobs:
10+
benchmark:
11+
runs-on: ubuntu-latest
12+
steps:
13+
- name: Checkout
14+
uses: actions/checkout@v4
15+
16+
- name: Set up Go
17+
uses: actions/setup-go@v5
18+
with:
19+
go-version-file: go.mod
20+
21+
- name: Run benchmarks
22+
run: |
23+
mkdir -p .bench
24+
go test ./vibes -run '^$' -bench '^BenchmarkExecution' -benchmem | tee .bench/benchmark.txt
25+
26+
- name: Publish benchmark summary
27+
run: |
28+
{
29+
echo "## Benchmark Results"
30+
echo ""
31+
echo '```text'
32+
cat .bench/benchmark.txt
33+
echo '```'
34+
} >> "$GITHUB_STEP_SUMMARY"
35+
36+
- name: Upload benchmark artifact
37+
uses: actions/upload-artifact@v4
38+
with:
39+
name: benchmark-results
40+
path: .bench/benchmark.txt

README.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -174,9 +174,13 @@ Long-form guides live in `docs/`:
174174
This repository uses [Just](https://github.com/casey/just) for common tasks:
175175

176176
- `just test` runs the full Go test suite (`go test ./...`).
177+
- `just bench` runs the core execution benchmarks (`go test ./vibes -run '^$' -bench '^BenchmarkExecution' -benchmem`).
177178
- `just lint` checks formatting (`gofmt`) and runs `golangci-lint` with a generous timeout.
178179
- Add new recipes in the `Justfile` as workflows grow.
179180

181+
CI also publishes benchmark artifacts via `.github/workflows/benchmarks.yml` on
182+
pull requests and pushes to `master`.
183+
180184
Contributions should run `just test` and `just lint` (or the equivalent `go` and `golangci-lint` commands) before submitting patches.
181185

182186
## Runtime Sandbox & Limits

ROADMAP.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -340,7 +340,7 @@ Goal: improve day-to-day developer productivity and interpreter robustness.
340340
### v0.19.0 Definition of Done
341341

342342
- [ ] Tooling commands are documented and stable.
343-
- [ ] Performance regressions are tracked with benchmarks.
343+
- [x] Performance regressions are tracked with benchmarks.
344344
- [x] CI includes example and fuzz coverage gates.
345345

346346
---

0 commit comments

Comments
 (0)