ci: allow TestPyPI candidate builds from testpypi/* branches - #1132
Closed
cursor[bot] wants to merge 1 commit into
Closed
ci: allow TestPyPI candidate builds from testpypi/* branches#1132cursor[bot] wants to merge 1 commit into
cursor[bot] wants to merge 1 commit into
Conversation
Lets the release automation validate a release candidate on TestPyPI by pushing the candidate head to a testpypi/<version> branch, without needing actions:write credentials for workflow_dispatch. Manual dispatch is unchanged. Co-authored-by: benjamin.burtenshaw <benjamin.burtenshaw@huggingface.co>
This was referenced Sep 9, 2026
Closed
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.
Summary
Adds a
pushtrigger ontestpypi/**branches topublish-testpypi.ymlso the release automation can run TestPyPI validation for a release candidate by pushing the candidate head to atestpypi/<version>branch. The automation's GitHub App token cannot callworkflow_dispatch(actions: writeis not granted; dispatch returns 403), but it can push branches. Manual dispatch is unchanged. The release PR template checklist wording is updated to match.Push-triggered runs use the existing default
.dev<run_number><run_attempt>suffix, so each candidate build gets a unique TestPyPI version. Job permissions, thetestpypienvironment, the trusted publisher binding (repository + workflow filename + environment), and theopenenv-package-publishconcurrency group are all unchanged.This is a release-workflow policy change, so it needs maintainer review. Anyone who can push a
testpypi/*branch can trigger a TestPyPI (not production) upload; that is the same population that can already dispatch the workflow manually.Type of Change
Alignment Checklist
.claude/docs/PRINCIPLES.mdand this PR aligns with our principles.claude/docs/INVARIANTS.mdand no invariants are violated (no credential exposure; no runtime code)RFC Status
Test Plan
testpypi/0.4.2was pushed at1b0ce3834506bc7aa869f77867aacb107ee9887b(exact 0.4.2 candidate head81c0207cd5aa30eea620ae5287391f4809c8236aplus only this commit;src/,pyproject.toml,README.md, andLICENSEare byte-identical to the candidate). It triggered https://github.com/huggingface/OpenEnv/actions/runs/34329574183 via thepushevent.0.4.2.devNto TestPyPI, and verifies the exact install.Claude Code Review
N/A — 10-line workflow trigger addition plus template wording; reviewed by the release automation.