Skip to content

ci: pin uv, disable fail-fast, add job timeouts, drop dead conditions - #128

Merged
GitBib merged 2 commits into
masterfrom
ci/harden-workflows
Aug 2, 2026
Merged

ci: pin uv, disable fail-fast, add job timeouts, drop dead conditions#128
GitBib merged 2 commits into
masterfrom
ci/harden-workflows

Conversation

@GitBib

@GitBib GitBib commented Aug 2, 2026

Copy link
Copy Markdown
Owner

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 the prune-cache default from true to false, which is the release's only breaking change. enable-cache: true is 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.1version: latest meant 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-minutes on every job — there was none anywhere, so the default of 360 applied. A hung choco install would burn six hours of runner time.

Dropped dead if: clauses:

  • python-tests.yml gated codecov on workflow_dispatch, which Tests never receives — it triggers on push to master and pull_request only.
  • python-docs.yml gated deploy on pull_request and the job on !github.event.pull_request.draft, but Docs only triggers on push to master and workflow_dispatch. Reading it, you would think docs build on PRs. They do not.

Verified prune-cache exists 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_dispatch can 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 on github.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.

GitBib added 2 commits August 2, 2026 14:20
- 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

codecov Bot commented Aug 2, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 99.11%. Comparing base (46a123b) to head (4cf631b).

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.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@GitBib
GitBib merged commit 3165152 into master Aug 2, 2026
25 checks passed
@GitBib
GitBib deleted the ci/harden-workflows branch August 2, 2026 11:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant