Compare commits

...

2 commits

Author SHA1 Message Date
56c4945b43
ci: pin twine<6 — classic ~/.pypirc auth on build runner
twine 6 (Sep 2025) auto-detects GitLab CI and refuses to fall back to
~/.pypirc, requiring PYPI_ID_TOKEN (Trusted Publishing OIDC). Pin <6
to keep the runner's ~/.pypirc fallback working until we migrate all
python/* repos to Trusted Publishing as a coordinated change.
2026-06-16 14:11:58 -04:00
5dca65f738
ci: twine check before upload, non-interactive
twine check validates the built artifacts' metadata (long_description
rendering, required fields) so a broken render hits CI logs instead of
landing on PyPI as a malformed project page.

--non-interactive guards against a wedged prompt hanging the pipeline
if the runner ever loses its ~/.pypirc auth.
2026-06-16 13:55:17 -04:00

View file

@ -19,6 +19,11 @@ pypi-twine:
- tags
script:
- pip install --upgrade pip
- pip install twine
# Pin twine <6 — newer twine auto-detects GitLab CI and refuses to
# fall back to ~/.pypirc on the runner, requiring PYPI_ID_TOKEN
# (Trusted Publishing OIDC). Until we migrate to Trusted Publishing,
# stick with the classic ~/.pypirc auth on the build runner.
- pip install "twine<6"
- python3 setup.py sdist bdist_wheel
- twine upload dist/*
- twine check dist/*
- twine upload --non-interactive dist/*