Skip to content

Update sphinx requirement from >=4.5.0 to >=8.1.3 #645

Update sphinx requirement from >=4.5.0 to >=8.1.3

Update sphinx requirement from >=4.5.0 to >=8.1.3 #645

Workflow file for this run

name: Build Wheels
on:
workflow_dispatch:
pull_request:
paths:
- 'tamp/**'
- 'pyproject.toml'
- 'setup.py'
- 'MANIFEST.in'
- '.github/workflows/build_wheels.yaml'
push:
tags:
- 'v*.*.*'
paths:
- 'tamp/**'
- 'pyproject.toml'
- 'setup.py'
- 'MANIFEST.in'
- '.github/workflows/build_wheels.yaml'
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
build_sdist:
name: 'sdist'
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest]
steps:
- name: Check out repository
uses: actions/checkout@v5
with:
fetch-depth: 0
- name: Install uv
uses: astral-sh/setup-uv@v6
with:
python-version: '3.12'
enable-cache: true
- name: Build sdist
run: uv build --sdist
- uses: actions/upload-artifact@v4
with:
name: wheels-sdist
path: dist/*.tar.gz
build_wheels_windows:
name: '${{ matrix.os }} ${{ matrix.cibw_archs }} ${{ matrix.cibw_build }}'
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [windows-latest]
cibw_build: ['cp39-*', 'cp310-*', 'cp311-*', 'cp312-*', 'cp313-*', 'cp314-*']
cibw_archs: ['AMD64', 'x86']
env:
PYTHON: 3.12
steps:
- name: 'Set environment variables (Windows)'
shell: pwsh
run: |
(Get-ItemProperty "HKLM:System\CurrentControlSet\Control\FileSystem").LongPathsEnabled
- name: Sanitize matrix.cibw_build
id: sanitize_build
run: echo "CIBW_BUILD_SANITIZED=$(echo '${{ matrix.cibw_build }}' | sed 's/\*/_/g')" >> $GITHUB_ENV
shell: bash
- name: Check out repository
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Set up python ${{ env.PYTHON }}
uses: actions/setup-python@v5
with:
python-version: ${{ env.PYTHON }}
- name: Build wheels
uses: pypa/cibuildwheel@v3.2.1
env:
CIBW_BUILD_FRONTEND: 'pip'
CIBW_ARCHS: ${{ matrix.cibw_archs }}
CIBW_BUILD: ${{ matrix.cibw_build }}
CIBW_TEST_REQUIRES: 'pytest cyclopts packaging'
CIBW_TEST_COMMAND: pytest {package}/tests --no-dataset
- uses: actions/upload-artifact@v4
with:
name: wheels-${{ matrix.os }}-${{ env.CIBW_BUILD_SANITIZED }}-${{ matrix.cibw_archs }}
path: wheelhouse/*.whl
build_wheels_windows_arm64:
name: '${{ matrix.os }} ${{ matrix.cibw_archs }} ${{ matrix.cibw_build }}'
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [windows-11-arm]
cibw_build: ['cp39-*', 'cp310-*', 'cp311-*', 'cp312-*', 'cp313-*', 'cp314-*']
cibw_archs: ['ARM64']
env:
PYTHON: 3.12
steps:
- name: 'Set environment variables (Windows)'
shell: pwsh
run: |
(Get-ItemProperty "HKLM:System\CurrentControlSet\Control\FileSystem").LongPathsEnabled
- name: Sanitize matrix.cibw_build
id: sanitize_build
run: echo "CIBW_BUILD_SANITIZED=$(echo '${{ matrix.cibw_build }}' | sed 's/\*/_/g')" >> $GITHUB_ENV
shell: bash
- name: Check out repository
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Set up python ${{ env.PYTHON }}
uses: actions/setup-python@v5
with:
python-version: ${{ env.PYTHON }}
- name: Build wheels
uses: pypa/cibuildwheel@v3.2.1
env:
CIBW_BUILD_FRONTEND: 'pip'
CIBW_ARCHS: ${{ matrix.cibw_archs }}
CIBW_BUILD: ${{ matrix.cibw_build }}
CIBW_TEST_REQUIRES: 'pytest cyclopts packaging'
CIBW_TEST_COMMAND: pytest {package}/tests --no-dataset
- uses: actions/upload-artifact@v4
with:
name: wheels-${{ matrix.os }}-${{ env.CIBW_BUILD_SANITIZED }}-${{ matrix.cibw_archs }}
path: wheelhouse/*.whl
build_wheels_linux:
name: '${{ matrix.os }} ${{ matrix.cibw_archs }} ${{ matrix.cibw_build }}'
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-22.04] # TODO: change back to ubuntu-latest; see https://github.com/actions/runner-images/issues/11471
cibw_build: ['cp39-*', 'cp310-*', 'cp311-*', 'cp312-*', 'cp313-*', 'cp314-*']
cibw_archs: ['x86_64', 'i686']
env:
PYTHON: 3.12
steps:
- name: Check out repository
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Sanitize matrix.cibw_build
id: sanitize_build
run: echo "CIBW_BUILD_SANITIZED=$(echo '${{ matrix.cibw_build }}' | sed 's/\*/_/g')" >> $GITHUB_ENV
shell: bash
- name: Set up QEMU
if: matrix.cibw_archs != 'x86_64'
uses: docker/setup-qemu-action@v3
with:
platforms: all
- name: Set up python ${{ env.PYTHON }}
uses: actions/setup-python@v5
with:
python-version: ${{ env.PYTHON }}
- name: Build wheels
uses: pypa/cibuildwheel@v3.2.1
env:
CIBW_BUILD_FRONTEND: 'pip'
CIBW_ARCHS: ${{ matrix.cibw_archs }}
CIBW_BUILD: ${{ matrix.cibw_build }}
CIBW_TEST_REQUIRES: 'pytest cyclopts packaging'
CIBW_TEST_COMMAND: pytest {package}/tests --no-dataset
- uses: actions/upload-artifact@v4
with:
name: wheels-${{ matrix.os }}-${{ env.CIBW_BUILD_SANITIZED }}-${{ matrix.cibw_archs }}
path: wheelhouse/*.whl
build_wheels_linux_arm64:
name: '${{ matrix.os }} ${{ matrix.cibw_archs }} ${{ matrix.cibw_build }}'
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-24.04-arm] # Native ARM runner
cibw_build: ['cp39-*', 'cp310-*', 'cp311-*', 'cp312-*', 'cp313-*', 'cp314-*']
cibw_archs: ['aarch64']
env:
PYTHON: 3.12
steps:
- name: Check out repository
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Sanitize matrix.cibw_build
id: sanitize_build
run: echo "CIBW_BUILD_SANITIZED=$(echo '${{ matrix.cibw_build }}' | sed 's/\*/_/g')" >> $GITHUB_ENV
shell: bash
- name: Set up python ${{ env.PYTHON }}
uses: actions/setup-python@v5
with:
python-version: ${{ env.PYTHON }}
- name: Build wheels
uses: pypa/cibuildwheel@v3.2.1
env:
CIBW_BUILD_FRONTEND: 'pip'
CIBW_ARCHS: ${{ matrix.cibw_archs }}
CIBW_BUILD: ${{ matrix.cibw_build }}
CIBW_TEST_REQUIRES: 'pytest cyclopts packaging'
CIBW_TEST_COMMAND: pytest {package}/tests --no-dataset
- uses: actions/upload-artifact@v4
with:
name: wheels-${{ matrix.os }}-${{ env.CIBW_BUILD_SANITIZED }}-${{ matrix.cibw_archs }}
path: wheelhouse/*.whl
build_wheels_linux_ppc64le:
name: '${{ matrix.os }} ${{ matrix.cibw_archs }} ${{ matrix.cibw_build }}'
if: github.event_name == 'push' && startsWith(github.event.ref, 'refs/tags/v')
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-22.04]
cibw_build: ['cp39-*', 'cp310-*', 'cp311-*', 'cp312-*', 'cp313-*', 'cp314-*']
cibw_archs: ['ppc64le']
env:
PYTHON: 3.12
steps:
- name: Check out repository
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Sanitize matrix.cibw_build
id: sanitize_build
run: echo "CIBW_BUILD_SANITIZED=$(echo '${{ matrix.cibw_build }}' | sed 's/\*/_/g')" >> $GITHUB_ENV
shell: bash
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
with:
platforms: all
- name: Set up python ${{ env.PYTHON }}
uses: actions/setup-python@v5
with:
python-version: ${{ env.PYTHON }}
- name: Build wheels
uses: pypa/cibuildwheel@v3.2.1
env:
CIBW_BUILD_FRONTEND: 'pip'
CIBW_ARCHS: ${{ matrix.cibw_archs }}
CIBW_BUILD: ${{ matrix.cibw_build }}
CIBW_TEST_REQUIRES: 'pytest cyclopts packaging'
CIBW_TEST_COMMAND: pytest {package}/tests --no-dataset
- uses: actions/upload-artifact@v4
with:
name: wheels-${{ matrix.os }}-${{ env.CIBW_BUILD_SANITIZED }}-${{ matrix.cibw_archs }}
path: wheelhouse/*.whl
build_wheels_macos_x86_64:
name: '${{ matrix.os }} ${{ matrix.cibw_archs }} ${{ matrix.cibw_build }}'
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [macos-15-intel]
cibw_build: ['cp39-*', 'cp310-*', 'cp311-*', 'cp312-*', 'cp313-*', 'cp314-*']
cibw_archs: ['x86_64']
env:
PYTHON: 3.12
steps:
- name: Check out repository
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Sanitize matrix.cibw_build
id: sanitize_build
run: echo "CIBW_BUILD_SANITIZED=$(echo '${{ matrix.cibw_build }}' | sed 's/\*/_/g')" >> $GITHUB_ENV
shell: bash
- name: Set up python ${{ env.PYTHON }}
uses: actions/setup-python@v5
with:
python-version: ${{ env.PYTHON }}
- name: Build wheels
uses: pypa/cibuildwheel@v3.2.1
env:
CIBW_BUILD_FRONTEND: 'pip'
CIBW_ARCHS: ${{ matrix.cibw_archs }}
CIBW_BUILD: ${{ matrix.cibw_build }}
CIBW_TEST_REQUIRES: 'pytest cyclopts packaging'
CIBW_TEST_COMMAND: pytest {package}/tests --no-dataset
- uses: actions/upload-artifact@v4
with:
name: wheels-${{ matrix.os }}-${{ env.CIBW_BUILD_SANITIZED }}-${{ matrix.cibw_archs }}
path: wheelhouse/*.whl
build_wheels_macos_arm64:
name: '${{ matrix.os }} ${{ matrix.cibw_archs }} ${{ matrix.cibw_build }}'
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [macos-15] # ARM runner
cibw_build: ['cp39-*', 'cp310-*', 'cp311-*', 'cp312-*', 'cp313-*', 'cp314-*']
cibw_archs: ['arm64']
env:
PYTHON: 3.12
steps:
- name: Check out repository
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Sanitize matrix.cibw_build
id: sanitize_build
run: echo "CIBW_BUILD_SANITIZED=$(echo '${{ matrix.cibw_build }}' | sed 's/\*/_/g')" >> $GITHUB_ENV
shell: bash
- name: Set up python ${{ env.PYTHON }}
uses: actions/setup-python@v5
with:
python-version: ${{ env.PYTHON }}
- name: Build wheels
uses: pypa/cibuildwheel@v3.2.1
env:
CIBW_BUILD_FRONTEND: 'pip'
CIBW_ARCHS: ${{ matrix.cibw_archs }}
CIBW_BUILD: ${{ matrix.cibw_build }}
CIBW_TEST_REQUIRES: 'pytest cyclopts packaging'
CIBW_TEST_COMMAND: pytest {package}/tests --no-dataset
- uses: actions/upload-artifact@v4
with:
name: wheels-${{ matrix.os }}-${{ env.CIBW_BUILD_SANITIZED }}-${{ matrix.cibw_archs }}
path: wheelhouse/*.whl
validate_wheels:
name: 'Validate wheels'
if: always() && !cancelled()
needs:
[
'build_sdist',
'build_wheels_windows',
'build_wheels_windows_arm64',
'build_wheels_linux',
'build_wheels_linux_arm64',
'build_wheels_linux_ppc64le',
'build_wheels_macos_x86_64',
'build_wheels_macos_arm64',
]
runs-on: ubuntu-latest
steps:
- name: Check build job results
if: contains(needs.*.result, 'failure')
run: exit 1
- uses: actions/download-artifact@v4
with:
path: wheels
pattern: wheels-*
merge-multiple: true
- name: Validate wheels
run: |
python -m pip install check-wheel-contents
check-wheel-contents wheels/*.whl
upload_to_pypi:
if: github.event_name == 'push' && startsWith(github.event.ref, 'refs/tags/v')
needs: ['validate_wheels']
runs-on: ubuntu-latest
permissions:
id-token: write
environment:
name: pypi
url: https://pypi.org/p/tamp
steps:
- uses: actions/download-artifact@v4
with:
path: wheels
pattern: wheels-*
merge-multiple: true
- uses: pypa/gh-action-pypi-publish@release/v1
with:
packages-dir: wheels/
skip-existing: true