Build #609
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: "Build" | |
on: | |
pull_request: | |
paths: | |
- ".github/workflows/build_wheels.yml" | |
- ".gitmodules" | |
- "CMakeLists.txt" | |
- "clp_ffi_py/**" | |
- "pyproject.toml" | |
- "README.md" | |
- "requirements-dev.txt" | |
- "src/**" | |
- "tests/**" | |
push: | |
paths: | |
- ".github/workflows/build_wheels.yml" | |
- ".gitmodules" | |
- "CMakeLists.txt" | |
- "clp_ffi_py/**" | |
- "pyproject.toml" | |
- "README.md" | |
- "requirements-dev.txt" | |
- "src/**" | |
- "tests/**" | |
schedule: | |
# Run every Tuesday at 00:15 UTC (the 15 is to avoid periods of high load) | |
- cron: "15 0 * * 2" | |
concurrency: | |
group: "${{github.workflow}}-${{github.ref}}" | |
# Cancel in-progress jobs for efficiency | |
cancel-in-progress: true | |
jobs: | |
linters: | |
runs-on: "ubuntu-latest" | |
steps: | |
- uses: "actions/checkout@v4" | |
with: | |
submodules: "recursive" | |
- uses: "actions/setup-python@v5" | |
with: | |
# NOTE: We resolve some of clang-tidy's IWYU violations using CPython 3.10's headers, so | |
# we need to use the same version of Python when running clang-tidy. | |
python-version: "3.10" | |
- run: | | |
pip install --upgrade pip | |
- run: "npm install -g @go-task/cli" | |
- run: "task lint:check" | |
build_wheels: | |
needs: ["linters"] | |
name: "Build ${{ matrix.build.name }}" | |
runs-on: "${{ matrix.build.os }}" | |
strategy: | |
matrix: | |
build: | |
# macOS builds | |
- name: "cp37-macosx_x86_64" | |
os: "macos-14" | |
- name: "cp38-macosx_arm64" | |
os: "macos-14" | |
- name: "cp38-macosx_universal2" | |
os: "macos-14" | |
- name: "cp38-macosx_x86_64" | |
os: "macos-14" | |
- name: "cp39-macosx_arm64" | |
os: "macos-14" | |
- name: "cp39-macosx_universal2" | |
os: "macos-14" | |
- name: "cp39-macosx_x86_64" | |
os: "macos-14" | |
- name: "cp310-macosx_arm64" | |
os: "macos-14" | |
- name: "cp310-macosx_universal2" | |
os: "macos-14" | |
- name: "cp310-macosx_x86_64" | |
os: "macos-14" | |
- name: "cp311-macosx_arm64" | |
os: "macos-14" | |
- name: "cp311-macosx_universal2" | |
os: "macos-14" | |
- name: "cp311-macosx_x86_64" | |
os: "macos-14" | |
- name: "cp312-macosx_arm64" | |
os: "macos-14" | |
- name: "cp312-macosx_universal2" | |
os: "macos-14" | |
- name: "cp312-macosx_x86_64" | |
os: "macos-14" | |
- name: "cp313-macosx_arm64" | |
os: "macos-14" | |
- name: "cp313-macosx_universal2" | |
os: "macos-14" | |
- name: "cp313-macosx_x86_64" | |
os: "macos-14" | |
# Linux builds | |
- name: "cp310-manylinux_aarch64" | |
os: "ubuntu-22.04" | |
- name: "cp310-manylinux_i686" | |
os: "ubuntu-22.04" | |
- name: "cp310-manylinux_x86_64" | |
os: "ubuntu-22.04" | |
- name: "cp310-musllinux_aarch64" | |
os: "ubuntu-22.04" | |
- name: "cp310-musllinux_i686" | |
os: "ubuntu-22.04" | |
- name: "cp310-musllinux_x86_64" | |
os: "ubuntu-22.04" | |
- name: "cp311-manylinux_aarch64" | |
os: "ubuntu-22.04" | |
- name: "cp311-manylinux_i686" | |
os: "ubuntu-22.04" | |
- name: "cp311-manylinux_x86_64" | |
os: "ubuntu-22.04" | |
- name: "cp311-musllinux_aarch64" | |
os: "ubuntu-22.04" | |
- name: "cp311-musllinux_i686" | |
os: "ubuntu-22.04" | |
- name: "cp311-musllinux_x86_64" | |
os: "ubuntu-22.04" | |
- name: "cp312-manylinux_aarch64" | |
os: "ubuntu-22.04" | |
- name: "cp312-manylinux_i686" | |
os: "ubuntu-22.04" | |
- name: "cp312-manylinux_x86_64" | |
os: "ubuntu-22.04" | |
- name: "cp312-musllinux_aarch64" | |
os: "ubuntu-22.04" | |
- name: "cp312-musllinux_i686" | |
os: "ubuntu-22.04" | |
- name: "cp312-musllinux_x86_64" | |
os: "ubuntu-22.04" | |
- name: "cp313-manylinux_aarch64" | |
os: "ubuntu-22.04" | |
- name: "cp313-manylinux_i686" | |
os: "ubuntu-22.04" | |
- name: "cp313-manylinux_x86_64" | |
os: "ubuntu-22.04" | |
- name: "cp313-musllinux_aarch64" | |
os: "ubuntu-22.04" | |
- name: "cp313-musllinux_i686" | |
os: "ubuntu-22.04" | |
- name: "cp313-musllinux_x86_64" | |
os: "ubuntu-22.04" | |
- name: "cp37-manylinux_aarch64" | |
os: "ubuntu-22.04" | |
- name: "cp37-manylinux_i686" | |
os: "ubuntu-22.04" | |
- name: "cp37-manylinux_x86_64" | |
os: "ubuntu-22.04" | |
- name: "cp37-musllinux_aarch64" | |
os: "ubuntu-22.04" | |
- name: "cp37-musllinux_i686" | |
os: "ubuntu-22.04" | |
- name: "cp37-musllinux_x86_64" | |
os: "ubuntu-22.04" | |
- name: "cp38-manylinux_aarch64" | |
os: "ubuntu-22.04" | |
- name: "cp38-manylinux_i686" | |
os: "ubuntu-22.04" | |
- name: "cp38-manylinux_x86_64" | |
os: "ubuntu-22.04" | |
- name: "cp38-musllinux_aarch64" | |
os: "ubuntu-22.04" | |
- name: "cp38-musllinux_i686" | |
os: "ubuntu-22.04" | |
- name: "cp38-musllinux_x86_64" | |
os: "ubuntu-22.04" | |
- name: "cp39-manylinux_aarch64" | |
os: "ubuntu-22.04" | |
- name: "cp39-manylinux_i686" | |
os: "ubuntu-22.04" | |
- name: "cp39-manylinux_x86_64" | |
os: "ubuntu-22.04" | |
- name: "cp39-musllinux_aarch64" | |
os: "ubuntu-22.04" | |
- name: "cp39-musllinux_i686" | |
os: "ubuntu-22.04" | |
- name: "cp39-musllinux_x86_64" | |
os: "ubuntu-22.04" | |
# Windows builds | |
- name: "cp37-win_amd64" | |
os: "windows-2022" | |
- name: "cp38-win_amd64" | |
os: "windows-2022" | |
- name: "cp39-win_amd64" | |
os: "windows-2022" | |
- name: "cp310-win_amd64" | |
os: "windows-2022" | |
- name: "cp311-win_amd64" | |
os: "windows-2022" | |
- name: "cp312-win_amd64" | |
os: "windows-2022" | |
- name: "cp313-win_amd64" | |
os: "windows-2022" | |
steps: | |
- name: "Checkout" | |
uses: "actions/checkout@v4" | |
with: | |
submodules: "recursive" | |
- name: "Set up QEMU" | |
if: "runner.os == 'Linux'" | |
uses: "docker/setup-qemu-action@v3" | |
with: | |
platforms: "all" | |
- name: "Build wheels" | |
uses: "pypa/[email protected]" | |
env: | |
CIBW_BUILD: "${{ matrix.build.name }}" | |
- uses: "actions/upload-artifact@v4" | |
with: | |
name: "wheel-${{ matrix.build.name }}" | |
path: "./wheelhouse/*.whl" | |
retention-days: 1 | |
combine-wheels: | |
needs: ["build_wheels"] | |
name: "Combine wheels" | |
runs-on: "ubuntu-latest" | |
env: | |
WHEEL_DIR: "/tmp/wheels" | |
steps: | |
- uses: "actions/download-artifact@v4" | |
with: | |
path: "${{env.WHEEL_DIR}}" | |
merge-multiple: true | |
- uses: "actions/upload-artifact@v4" | |
with: | |
name: "all-wheels" | |
path: "${{env.WHEEL_DIR}}" |