Plugin: publisher-pypi
Baut Python-Source- und Wheel-Distributionen mit python -m build und lädt die erzeugten dist/*-Artefakte mittels twine upload zu PyPI (oder TestPyPI bzw. privaten Paketindizes) hoch.
Installation
Abschnitt betitelt „Installation“Binärdatei
Abschnitt betitelt „Binärdatei“semrel plugin install @semrel/publisher-pypisemrel plugin install lädt die Binärdatei nach .semrel/plugins/ herunter und aktualisiert .semrel.lock. Committe .semrel.lock, um die Version für dein Team festzuschreiben.
Vorgefertigte, signierte Multi-Plattform-Images (linux/amd64, linux/arm64) werden bei jedem Release veröffentlicht:
docker pull ghcr.io/semrels/publisher-pypi:latestÜberprüfe die Image-Signatur mit cosign:
cosign verify ghcr.io/semrels/publisher-pypi:latest \ --certificate-identity-regexp 'https://github.com/SemRels/publisher-pypi/.github/workflows/release.yml.*' \ --certificate-oidc-issuer https://token.actions.githubusercontent.comKonfiguration
Abschnitt betitelt „Konfiguration“version: 1plugins: - uses: @semrel/updater-python phase: pre-tag args: file: pyproject.toml
- uses: @semrel/publisher-pypi phase: release args: pypi_token: '${env.PYPI_API_TOKEN}' # Optional für TestPyPI oder privaten Index: # pypi_repository_url: "https://test.pypi.org/legacy/"Umgebungsvariablen
Abschnitt betitelt „Umgebungsvariablen“| Name | Erforderlich | Standard | Beschreibung |
|---|---|---|---|
SEMREL_PLUGIN_PYPI_TOKEN | ja (außer Dry-Run) | — | PyPI API-Token, wird als TWINE_PASSWORD verwendet. |
SEMREL_PLUGIN_PYPI_REPOSITORY_URL | nein | PyPI-Standard | Optionale Repository-URL für twine upload --repository-url (z. B. https://test.pypi.org/legacy/). |
SEMREL_PLUGIN_WORKDIR | nein | . | Arbeitsverzeichnis für python -m build und dist/. |
SEMREL_PLUGIN_PYTHON_BIN | nein | python / python3 | Überschreibt die verwendete Python-Binärdatei. |
SEMREL_PLUGIN_TWINE_BIN | nein | twine | Überschreibt die verwendete twine-Binärdatei. |
Release-Kontextvariablen
Abschnitt betitelt „Release-Kontextvariablen“SEMREL_VERSIONSEMREL_NEXT_VERSIONSEMREL_DRY_RUN
Verhalten
Abschnitt betitelt „Verhalten“- Sucht
pythonoderpython3im$PATH. - Führt
python -m buildim konfigurierten Projektverzeichnis aus. - Ermittelt alle gebauten Pakete unter
dist/*. - Lädt die Pakete per
twine uploadhoch (im Dry-Run-Modus wird der Build validiert, der Upload jedoch übersprungen).