Part of #151.
Problems.
- 4 mismatched event types —
Publish() sends celeris-bench, PublishValidate() sends celeris-validate, publish-results.yml sends results-updated, docs listener sync-benchmarks.yml fires only on benchmark-updated. Nothing lines up → listener never triggers.
- Payload too big —
Publish() inlines ~650 KB results.json into a repository_dispatch client_payload capped at ~64 KB (10× over). With time-series it's multi-MB.
- The docs listener does nothing useful even when fired (logs +
ls).
- Existing
results/ data was committed by an orphaned github-actions[bot] path no current workflow reproduces.
Goal. Working, scalable publish: probatorium writes the result tree (#165 layout) and git pushes it to goceleris/docs, then sends a tiny pointer dispatch ({version, arch, date, run_id, path}) the docs side uses to update index.json + latest/ and (later) trigger the website rebuild.
Scope.
- Rewrite
mage Publish to commit files (contents API or push) instead of inlining JSON.
- Single canonical event type; both repos agree.
- docs-side workflow: update
index.json, refresh latest/, validate schema, (optionally) dispatch to the website.
- gzip + downsampled series in-tree; document the R2/S3-with-manifests escape hatch if git history bloats.
Acceptance. A bench run end-to-end lands committed files in goceleris/docs under #165 layout, updates index.json, refreshes latest/.
Refs: probatorium mage_publish.go, .github/workflows/publish-results.yml; docs .github/workflows/sync-benchmarks.yml.
Part of #151.
Problems.
Publish()sendsceleris-bench,PublishValidate()sendsceleris-validate,publish-results.ymlsendsresults-updated, docs listenersync-benchmarks.ymlfires only onbenchmark-updated. Nothing lines up → listener never triggers.Publish()inlines ~650 KB results.json into arepository_dispatchclient_payloadcapped at ~64 KB (10× over). With time-series it's multi-MB.ls).results/data was committed by an orphanedgithub-actions[bot]path no current workflow reproduces.Goal. Working, scalable publish: probatorium writes the result tree (#165 layout) and
git pushes it to goceleris/docs, then sends a tiny pointer dispatch ({version, arch, date, run_id, path}) the docs side uses to updateindex.json+latest/and (later) trigger the website rebuild.Scope.
mage Publishto commit files (contents API or push) instead of inlining JSON.index.json, refreshlatest/, validate schema, (optionally) dispatch to the website.Acceptance. A bench run end-to-end lands committed files in goceleris/docs under #165 layout, updates
index.json, refresheslatest/.Refs: probatorium
mage_publish.go,.github/workflows/publish-results.yml; docs.github/workflows/sync-benchmarks.yml.