ci: pin uv, disable fail-fast, add job timeouts, drop dead conditions - #128
Merged
Conversation
- prune-cache: true restores the pre-v9 setup-uv behaviour. v9.0.0 flipped the default to false, and enable-cache is on in all four workflows, so the Actions cache would grow until LRU eviction starts thrashing a 15-job matrix. - fail-fast: false on both matrices. One failing job used to cancel the other 14, which made every red run look platform-agnostic and hid whether a failure was specific to one OS or Python version. - version: "0.12.1" instead of latest. A new uv release could break CI with no change in the repo, and the failure would look like ours. - timeout-minutes on every job. The default is 360, so a hung installer burns six hours of runner time. - dropped if: clauses referencing events the workflows never receive: workflow_dispatch in Tests, pull_request in Docs.
workflow_dispatch can be started on any branch, so gating the deploy on the event name let a manual run from a feature branch publish to gh-pages. Gate on the ref instead. The build still runs on dispatch from any branch, it just does not publish.
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #128 +/- ##
=======================================
Coverage 99.11% 99.11%
=======================================
Files 21 21
Lines 1477 1477
=======================================
Hits 1464 1464
Misses 13 13 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Follow-up to the setup-uv v9 bump in #121 plus a few things found while clearing the dependabot queue.
prune-cache: true— v9.0.0 flipped theprune-cachedefault fromtruetofalse, which is the release's only breaking change.enable-cache: trueis set in all four workflows, so the change applies here: the uv cache stops being pruned and grows. With a 15-job matrix against a 10 GB per-repo cache limit and LRU eviction, that turns into cache thrash rather than a hard failure. This restores the old behaviour explicitly.fail-fast: false— one failing job used to cancel the other 14. On #126 macOS 3.12 failed and everything else was cancelled, so there was no way to tell from the run whether the problem was platform-specific without digging into logs. Both matrices now report independently.Pinned uv to
0.12.1—version: latestmeant a uv release could break CI with no change in the repo, and the failure would look like ours. The four call sites now agree on a version.timeout-minuteson every job — there was none anywhere, so the default of 360 applied. A hungchoco installwould burn six hours of runner time.Dropped dead
if:clauses:python-tests.ymlgated codecov onworkflow_dispatch, which Tests never receives — it triggers onpushto master andpull_requestonly.python-docs.ymlgated deploy onpull_requestand the job on!github.event.pull_request.draft, but Docs only triggers onpushto master andworkflow_dispatch. Reading it, you would think docs build on PRs. They do not.Verified
prune-cacheexists as an input in setup-uv v9.0.0 (default: "false") rather than assuming it from the changelog. All four workflow files parse, and every job now carries a timeout.Docs publish only from master — the deploy step was gated on the event name, and
workflow_dispatchcan be started on any branch, so a manual Docs run from a feature branch would have published that branch's build to gh-pages. Now gated ongithub.ref == 'refs/heads/master', which covers both push-to-master and a manual run on master. The build still runs on dispatch from any branch, it just does not publish.