Skip to content

ci: never publish pre-releases to PyPI #52

ci: never publish pre-releases to PyPI

ci: never publish pre-releases to PyPI #52

Workflow file for this run

name: Upload Python wheel to PyPI

Check failure on line 1 in .github/workflows/upload_pypi.yml

View workflow run for this annotation

GitHub Actions / .github/workflows/upload_pypi.yml

Invalid workflow file

(Line: 5, Col: 9): Unrecognized named-value: 'github'. Located at position 2 within expression: !github.event.release.prerelease
on:
release:
if: ${{ !github.event.release.prerelease }}
types: [created]
# Pre-releases exist to host pinned artifacts (see pure-wheel.yml) — they must
# NEVER publish to PyPI. Guarded per-job because uploads happen per-job: on
# 2026-08-15 a pre-release tag partially published 7.6.6.dev0 (sdist + mac/win
# wheels) before the linux legs failed.
jobs:
wheels:
if: ${{ !github.event.release.prerelease }}
strategy:
max-parallel: 4
fail-fast: false
matrix:
python-version: [3.8, 3.9, '3.10', 3.11, 3.12]
platform: [macos-latest, windows-latest] # Wheels on linux below
runs-on: ${{ matrix.platform }}
steps:
- uses: actions/checkout@v7
with:
fetch-depth: 0
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v7
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install setuptools wheel twine Cython build
- name: Build and publish wheel
env:
TWINE_USERNAME: __token__
TWINE_PASSWORD: ${{ secrets.PYPI_UPLOAD_TOKEN }}
run: |
python -m build
twine upload dist/*.whl
linux_wheels:
if: ${{ !github.event.release.prerelease }}
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
with:
fetch-depth: 0
- name: Set up Python
uses: actions/setup-python@v7
with:
python-version: 3.11
- name: Stable with rustfmt and clippy
uses: actions-rs/toolchain@v1
with:
profile: default
toolchain: stable
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install twine
- name: Python wheels manylinux build
uses: RalfG/python-wheels-manylinux-build@v0.7.1
with:
python-versions: 'cp38-cp38 cp39-cp39 cp310-cp310 cp311-cp311 cp312-cp312'
build-requirements: 'setuptools cython setuptools_scm'
- name: Build and publish wheel
env:
TWINE_USERNAME: __token__
TWINE_PASSWORD: ${{ secrets.PYPI_UPLOAD_TOKEN }}
run: |
twine upload dist/vpython-*-manylinux*.whl
linux_aarch64_wheels:
if: ${{ !github.event.release.prerelease }}
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
with:
fetch-depth: 0
- name: Set up Python
uses: actions/setup-python@v7
with:
python-version: 3.11
- name: Set up QEMU
id: qemu
uses: docker/setup-qemu-action@v3
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install twine
- name: Python wheels manylinux build
uses: RalfG/python-wheels-manylinux-build@v0.4.2-manylinux2014_aarch64
with:
python-versions: 'cp38-cp38 cp39-cp39 cp310-cp310 cp311-cp311 cp312-cp312'
build-requirements: 'setuptools cython setuptools_scm'
- name: Build and publish wheel
env:
TWINE_USERNAME: __token__
TWINE_PASSWORD: ${{ secrets.PYPI_UPLOAD_TOKEN }}
run: |
twine upload dist/vpython-*-manylinux*.whl
sdist:
if: ${{ !github.event.release.prerelease }}
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
- name: Set up Python
uses: actions/setup-python@v7
with:
python-version: '3.11'
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install setuptools wheel twine Cython build
- name: Build and publish
env:
TWINE_USERNAME: __token__
TWINE_PASSWORD: ${{ secrets.PYPI_UPLOAD_TOKEN }}
run: |
python -m build
twine upload dist/*.tar.gz