bench: stop manual runs from cancelling each other (#11)

`cancel-in-progress: true` is right for a CI triggered by pushes, where a newer
commit makes an older run pointless. It is wrong here. Three times in one
afternoon a second dispatch killed a run that was mid-measurement, once eight
minutes in, and each left a cancelled entry in a run list whose whole job is to
be readable by someone checking the numbers.

The fix people reach for then is deleting runs, which breaks the run_url the
published data links to, and with it the only reason to believe the numbers.

A manual run is never superseded: nobody dispatches a benchmark to invalidate
the one already running. A release or the weekly cron still supersedes, because
there an older run really is measuring a version nobody asks about any more.
This commit is contained in:
Exocet92
2026-08-20 20:19:48 +02:00
committed by GitHub
parent 6cae686283
commit 4a5b740ecb
+10 -1
View File
@@ -38,7 +38,16 @@ permissions:
concurrency:
group: bench-vs-vectorbt-${{ github.ref }}
cancel-in-progress: true
# A manual run is never superseded, so it is never cancelled. Cancelling in
# flight is the right default for a CI triggered by pushes, where a newer
# commit makes an older run pointless; here it threw away ten minutes of
# measurement because somebody pressed the button twice, three times in one
# afternoon, and left a trail of cancelled runs in a list whose whole job is
# to be readable by someone checking the numbers.
#
# A release or the weekly cron still supersedes: there, an older run really is
# measuring a version nobody is asking about any more.
cancel-in-progress: ${{ github.event_name != 'workflow_dispatch' }}
jobs:
bench: