Skip to content

publish: dual S3 + PyPI publish on release (with GPU tests)#545

Merged
swahtz merged 2 commits intomainfrom
fix/release_packaing
Mar 14, 2026
Merged

publish: dual S3 + PyPI publish on release (with GPU tests)#545
swahtz merged 2 commits intomainfrom
fix/release_packaing

Conversation

@swahtz
Copy link
Contributor

@swahtz swahtz commented Mar 13, 2026

On GitHub Release events, upload the full wheel matrix to the S3 production index (simple/ prefix) AND publish an sdist to PyPI. Previously these paths were mutually exclusive.

  • Add pypi and release routing flags to pr-flags job
  • Handle release event: set s3=true, pypi=true, release=true
  • Rewrite publish-dist to build and upload an sdist instead of downloading pre-built wheels, matching what PyPI hosts today
  • Extend auditwheel repair condition to also run for release events
  • Enable GPU validation (smoke test + unit tests) on releases
  • Add release as a workflow_dispatch publish_target option so a failed release can be re-triggered manually
  • Replace github.event_name checks with the release flag so manual dispatch with publish_target=release correctly targets production S3 (simple/) and PyPI

On GitHub Release events, upload the full wheel matrix to the S3
production index (simple/ prefix) AND publish an sdist to PyPI.
Previously these paths were mutually exclusive.

- Add `pypi` and `release` routing flags to pr-flags job
- Handle `release` event: set s3=true, pypi=true, release=true
- Rewrite publish-dist to build and upload an sdist instead of
  downloading pre-built wheels, matching what PyPI hosts today
- Extend auditwheel repair condition to also run for release events
- Enable GPU validation (smoke test + unit tests) on releases
- Add `release` as a workflow_dispatch publish_target option so a
  failed release can be re-triggered manually
- Replace github.event_name checks with the release flag so manual
  dispatch with publish_target=release correctly targets production
  S3 (simple/) and PyPI

Signed-off-by: Jonathan Swartz <jonathan@jswartz.info>
@swahtz swahtz added this to the v0.4 milestone Mar 13, 2026
@swahtz swahtz requested a review from a team as a code owner March 13, 2026 01:25
@swahtz swahtz added the CI Issues related to the Github actions CI/CD. For build issues use CMake/Build label Mar 13, 2026
@swahtz swahtz requested review from fwilliams and sifakis March 13, 2026 01:25
Copy link
Contributor

@harrism harrism left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approve, but the combinations of release targets and options are a getting more complicated, do we need more documentation?

All checkout steps in publish.yml used github.ref (the "Use workflow
from" branch) instead of inputs.branch (the "Branch to build" input).
This caused workflow_dispatch runs to build from the wrong branch,
producing packages with the dispatch branch's version (e.g. 0.5.0.dev0)
instead of the target branch's version (e.g. 0.4.0).

Add inputs.branch as a fallback before github.ref in all four checkout
steps (pr-flags, fvdb-build, publish-dist, validate-unit-tests). For
non-dispatch events the inputs context is empty so behavior is unchanged.

Signed-off-by: Jonathan Swartz <jonathan@jswartz.info>
@swahtz
Copy link
Contributor Author

swahtz commented Mar 14, 2026

Approve, but the combinations of release targets and options are a getting more complicated, do we need more documentation?

Agreed. I've made a new issue to fix that up

@swahtz swahtz merged commit ac007bc into main Mar 14, 2026
87 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CI Issues related to the Github actions CI/CD. For build issues use CMake/Build project management

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants