From 4a5b740ecbbc00c13d784051624b7a0b4e305633 Mon Sep 17 00:00:00 2001 From: Exocet92 <79667065+Jimmy7892@users.noreply.github.com> Date: Thu, 20 Aug 2026 20:19:48 +0200 Subject: [PATCH] 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. --- .github/workflows/bench-vs-vectorbt.yml | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/.github/workflows/bench-vs-vectorbt.yml b/.github/workflows/bench-vs-vectorbt.yml index 88c2928..64dd9cc 100644 --- a/.github/workflows/bench-vs-vectorbt.yml +++ b/.github/workflows/bench-vs-vectorbt.yml @@ -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: