ci: publish benchmark trend on a schedule instead of per-push
A full benchmark run takes up to 120 minutes, so per-push runs on main could
never keep up with the branch traffic. Serializing them with a concurrency
group stopped the racing writes to the `benchmarks` branch, but GitHub only
ever holds ONE waiting run per group, so all but the newest queued run were
cancelled ("Canceling since a higher priority waiting request for benchmarks
exists") and their datapoints lost.
Split the workflow instead:
- benchmarks-publish.yaml (new) runs the publishing jobs on a 6-hourly cron,
keeps the concurrency group as a safety net for manual dispatches, and skips
the run when main saw no Go changes in the lookback window.
- benchmarks.yaml keeps the per-push regression comment and drops the
concurrency group entirely. That job only reads, so it was being cancelled as
collateral damage whenever two pushes landed close together.
Signed-off-by: Stephan Renatus <stephan.renatus@gmail.com> S
Stephan Renatus committed
56d870454f9433c088b617cff8252533640fc5eb
Parent: 90c8a7b
Committed by Stephan Renatus <s_renatus@apple.com>
on 9/1/2026, 7:04:53 AM