Skip to content

ci: dry-run the wheel build on PRs; only releases publish - #52

Merged
petercorke merged 1 commit into
mainfrom
ci/wheel-build-dry-run
Sep 20, 2026
Merged

petercorke merged 1 commit into
mainfrom
ci/wheel-build-dry-run

Conversation

@petercorke

Copy link
Copy Markdown
Collaborator

Thanks for contributing to spatialgeometry!

Summary

Dry-run the wheel/sdist/Pyodide build on pull requests; only a release publishes.

The wheel matrix only ever ran on release, so a break (e.g. the new cp314 target from #47) would first surface at release time.

  • Also trigger the workflow on pull_request, filtered to pyproject.toml, CMakeLists.txt and the workflow file itself, so it only runs when the build configuration changes.
  • Gate upload_pypi on github.event_name == 'release', so a dry run can never publish. Releasing is still a single click on "Publish release" and is still the only way to publish; the header comment says so.
  • Set fail-fast: false on the wheel matrix so one platform failing doesn't cancel the rest into misleading "cancelled" results.

Cost: 4 platform runners (× CPython 3.10-3.14 each) plus the Pyodide wheel and sdist, a few minutes, only on PRs that touch those files.

This PR touches the workflow file itself, so its own CI run is the first real dry run (including the first cp314 wheel build).

Related issue

Follows up #47 (Python 3.14 support) and #49 (pure Pyodide wheel).

Checklist

Nothing below is checked automatically -- this is a self-check for you before requesting review.

  • PR title follows Conventional Commits (type: description)
  • Tests pass locally — n/a, workflow-only change
  • Added/updated tests for this change, if applicable — n/a; the workflow's own run on this PR is the test
  • Type hints / docstrings — n/a
  • C++ extension / pure-Python fallback — n/a, extension unchanged
  • PR is as small/focused as practical -- if it tackles several unrelated things, consider splitting it so each can be reviewed and accepted independently

🤖 Generated with Claude Code

The wheel/sdist matrix only ran on release, so a break (e.g. the new
cp314 target) would first surface at release time. Also trigger it on pull
requests touching the build configuration, gate upload_pypi on the release
event so a dry run can never publish, and turn off fail-fast so one
platform failing doesn't cancel the rest into misleading "cancelled" results.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@petercorke
petercorke merged commit 0577576 into main Sep 20, 2026
25 checks passed
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