Skip to content

October 20th, 2025

October 20th, 2025 #82

Workflow file for this run

# This workflows will upload a Python Package using Twine when a release is created
# For more information see: https://help.github.com/en/actions/language-and-framework-guides/using-python-with-github-actions#publishing-to-package-registries
name: Build Wheels
on:
workflow_dispatch:
release:
types: [created, edited]
jobs:
build_wheels:
name: Build wheels on ${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-24.04, windows-2019, macos-15]
steps:
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
- name: Setup git submodule
run: git submodule update --init --recursive
- name: Checkout cmark-gfm
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
with:
repository: github/cmark-gfm
path: cmark-gfm
- uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c # v6.0.0
name: Install Python
with:
python-version: '3.12'
- name: Install build deps
run: |
python -m pip --disable-pip-version-check install cibuildwheel==3.2.0 twine==6.2.0 setuptools cffi>=2.0.0
- uses: docker/setup-qemu-action@29109295f81e9208d7d86ff1c6c12d2833863392 # v3.6.0
if: runner.os == 'Linux'
name: Set up QEMU
- name: Build wheels
run: |
python -m cibuildwheel --output-dir wheelhouse
twine check ./wheelhouse/*.whl
- name: Build sdist
if: runner.os == 'Linux'
run: |
python setup.py sdist
twine check ./dist/*.tar.gz
- name: Publish sdist
env:
TWINE_USERNAME: ${{ secrets.PYPI_USERNAME }}
TWINE_PASSWORD: ${{ secrets.PYPI_PASSWORD }}
if: ${{ runner.os == 'Linux' && env.TWINE_USERNAME != null }}
run: |
twine upload --skip-existing ./dist/*
- uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
with:
path: |
./wheelhouse/*.whl
./dist/*.tar.gz
- name: Publish wheels
env:
TWINE_USERNAME: ${{ secrets.PYPI_USERNAME }}
TWINE_PASSWORD: ${{ secrets.PYPI_PASSWORD }}
if: ${{ env.TWINE_USERNAME != null }}
run: |
twine upload --skip-existing ./wheelhouse/*