From 7c8de52fabf750350e139aaeff14532d740c2214 Mon Sep 17 00:00:00 2001 From: sotashimozono Date: Sun, 6 Sep 2026 10:33:52 +0000 Subject: [PATCH 1/2] The timing history stopped recording when prebuild was added MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit `timings` has been skipped on every run of every consumer since #36. The suite is green, the shards pass, and the history it plans the next run from has not moved since 2026-07-28. Bisected to one commit. `ac87a88` recorded; `f3681d7` (#36) did not; nothing between them. That commit does not touch this job — it is byte-identical across the boundary — it adds `prebuild` and gives `test` `needs: [labels, prebuild]`. The condition is not what fails. On a push to the default branch all three of its own conjuncts are true, and `needs.test.result == 'success'` is provable from the same run: `gate` reads that value and exits 1 if it is anything else, and `gate` is green. A job whose condition is true and which is skipped anyway was not skipped by its condition. It inherited the skip: `prebuild` is off by default, so it is skipped on essentially every run, and a job with no status-check function in its `if` inherits that through the graph even though `test` ran and passed. The two siblings that kept working are the two that carry one. `collect` has `always() && ...`, `gate` has `always()`, `timings` had none. This gives it `!cancelled()`, which is the weaker of the two and enough: `needs.test.result == 'success'` still gates on the shards actually passing, so a red suite records nothing, as before. Not verified by running it — I have no way to dispatch a push to a default branch here. What is verified is the bisection, that the job is byte-identical across it, and that `needs.test.result` is `success` on the runs where this skips. --- .github/workflows/sharded-tests.yml | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/.github/workflows/sharded-tests.yml b/.github/workflows/sharded-tests.yml index 990deae..29242c9 100644 --- a/.github/workflows/sharded-tests.yml +++ b/.github/workflows/sharded-tests.yml @@ -1169,7 +1169,14 @@ jobs: timings: name: Record timing history needs: test - if: ${{ inputs.record-timings && (github.event_name == 'push' && github.ref == format('refs/heads/{0}', github.event.repository.default_branch) && needs.test.result == 'success') }} + # `!cancelled()` is load-bearing, not decoration. `test` needs `prebuild`, which is skipped + # whenever the input is off — its default — and a job whose `if` carries no status-check + # function inherits that skip through the graph even though `test` itself ran and passed. + # Measured: on every consumer this job has been skipped since #36 introduced `prebuild`, + # while `needs.test.result` was `success` the whole time — `gate`, which checks exactly that + # and fails the run if it is not `success`, has been green on the same runs. The two + # siblings that survived, `collect` and `gate`, both carry `always()`; this one did not. + if: ${{ !cancelled() && inputs.record-timings && github.event_name == 'push' && github.ref == format('refs/heads/{0}', github.event.repository.default_branch) && needs.test.result == 'success' }} runs-on: ${{ fromJSON(inputs.helper-runner) }} permissions: contents: write # force-pushes the ci-timings orphan branch From e9914386e6128ee8d20411f13e9b0f3db1bb64c8 Mon Sep 17 00:00:00 2001 From: sotashimozono Date: Sun, 6 Sep 2026 10:41:25 +0000 Subject: [PATCH 2/2] Bump to 0.3.40 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit A behaviour fix in the shipped workflow, which is this package's product. Patch: nothing is removed, renamed, or changed in meaning — a job that was silently skipped now runs when its condition says it should. --- Project.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Project.toml b/Project.toml index ba2b23d..cc10b2e 100644 --- a/Project.toml +++ b/Project.toml @@ -1,6 +1,6 @@ name = "TestShards" uuid = "acceef1d-f5e0-4fe4-a546-818dc56ce7b2" -version = "0.3.39" +version = "0.3.40" authors = ["sota shimozono "] [deps]