Repository navigation
Configure validated PyPI and TestPyPI publishing - #110
Merged
Merged
Conversation
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.
Configure one manual build-and-publish workflow for the
python-acePyPI distribution. Build Linux x86-64 manylinux wheels for Python 3.9–3.13 plus a source distribution, smoke-test wheels, validate metadata and full release coverage, and upload only when the operator explicitly selects TestPyPI or PyPI.Connect the existing PYPI_USERNAME/PYPI_PASSWORD and TEST_PYPI_API_TOKEN secrets. Keep OIDC Trusted Publishing as the fallback when the corresponding password secret is absent, and enable attestations only for OIDC. PyPI and TestPyPI use separate publishing jobs and master-only GitHub environments. Retire the duplicate source-only TestPyPI workflow.
Preflight rejects publication from non-master refs and package versions already present on the target index. The current 0.4.0rc1 is already published; a new version must be committed before an actual upload. No release upload is part of this change.
Validation: actionlint passes, strict MkDocs build passes, real wheel/sdist metadata checks pass, incomplete wheel coverage is rejected, and the live-PyPI duplicate-version and non-master guards both reject publication as intended. Full-matrix build-only GitHub validation is run before activation. Existing secret values were not read or changed; their validity cannot be verified without an upload.
Full build-only validation passed: https://github.com/ICAMS/python-ace/actions/runs/41216645833. All five Python 3.9–3.13 wheels built and passed smoke tests; strict Twine checks and the final artifact validator accepted five wheels and one source distribution. Both publication jobs were skipped. The normal PR wheel/source/validation pipeline also passed. No package version was changed or uploaded.