Skip to content

fix: gate PyPI releases on abi3 audit and import tests again - #243

Merged
schroedk merged 1 commit into
mainfrom
fix/publish-release-gating
Aug 5, 2026
Merged

fix: gate PyPI releases on abi3 audit and import tests again#243
schroedk merged 1 commit into
mainfrom
fix/publish-release-gating

Conversation

@schroedk

@schroedk schroedk commented Aug 5, 2026

Copy link
Copy Markdown
Collaborator

#241 split build jobs into build-wheels.yml so publish.yml and wheels.yml could share them, but that made per-job needs: impossible across the reusable-workflow boundary — only the whole call. Two regressions fell out:

  • publish.yml's release job needed only [build]; the freshly-built release wheels never ran through abi3audit/import-test in that run.
  • wheels.yml's abi3audit/import-test/import-test-nonabi3 needed the whole build call, so an unrelated platform's build failure (e.g. s390x) blocked checks that don't depend on it.

Fix: merge the build jobs back into wheels.yml (restoring fine-grained needs: [linux] / needs: [linux-nonabi3, macos-nonabi3, windows-nonabi3]), and have publish.yml call wheels.yml itself so a tag push runs the real audit/test suite against the wheels it's about to publish. Also adds a concurrency group so superseded pushes don't queue redundant full-matrix runs.

build-wheels.yml is deleted — nothing else needed it as a separate file once publish.yml calls wheels.yml directly.

#241 split build jobs into a separate build-wheels.yml reusable
workflow, but that made it impossible for callers to depend on an
individual job inside it — only the whole call. Two regressions fell
out of that: publish.yml's release job needed only the build call
(no abi3audit/import-test ever ran against the wheels being
published), and wheels.yml's abi3audit/import-test/import-test-nonabi3
needed the whole build call, so an unrelated platform's build failure
blocked checks that didn't depend on it.

Merges the build jobs back into wheels.yml so needs: can target
specific jobs again (needs: [linux], needs: [linux-nonabi3,
macos-nonabi3, windows-nonabi3]), and has publish.yml call wheels.yml
instead of the build jobs directly, so a tag push runs the real audit
and test suite against the wheels it's about to publish. Also adds a
concurrency group so superseded pushes to the same ref don't queue up
redundant full-matrix runs.
@schroedk
schroedk merged commit bed7997 into main Aug 5, 2026
5 checks passed
schroedk added a commit that referenced this pull request Aug 5, 2026
…246)

Same bug class as #243: needs: [linux-nonabi3, macos-nonabi3,
windows-nonabi3] made every test leg (including Linux/Windows-only
ones) wait for, and get skipped by, an unrelated platform's build.
macos-nonabi3 (macos-15-intel) is consistently the slowest of the
three builds — confirmed via job logs it's not a cache miss, but the
LTO relink cost of the release profile on that runner's hardware — so
Linux/Windows tests were needlessly gated on it.

Splits into import-test-nonabi3-{linux,macos,windows}, each needing
only its own platform's build job. Doesn't change overall run
duration (macOS stays the critical path for its own tests), but a
macOS build failure no longer skips unrelated Linux/Windows checks.
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