Skip to content

fix: update CI workflow to include Zig setup and static zlib builds f… #35

fix: update CI workflow to include Zig setup and static zlib builds f…

fix: update CI workflow to include Zig setup and static zlib builds f… #35

Workflow file for this run

name: ci
on:
push:
branches: [main]
paths:
- "setup.py"
- ".github/workflows/ci.yml"
- "python/**"
- "seqio.c"
- "seqio.h"
jobs:
test-on-linux:
name: Build wheels on Linux for ${{ matrix.arch }}
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest]
python-version: [38, 39, 310, 311, 312, 313]
manylinux-image: [manylinux2014]
arch: [x86_64, aarch64]
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
- name: Set up QEMU
if: ${{ matrix.arch == 'aarch64' }}
uses: docker/setup-qemu-action@v1
- name: set zig
uses: mlugg/setup-zig@v1
with:
version: 0.13.0
- name: build static zlib for linux
run: |
zig build -Doptimize=ReleaseFast -Dtarget=x86_64-linux-gnu.2.17
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: 3.11
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install build twine setuptools wheel
- name: Install cibuildwheel
run: python -m pip install cibuildwheel -U
- name: Build wheels
run: python -m cibuildwheel --output-dir wheelhouse
env:
CIBW_BUILD: "cp${{ matrix.python-version }}-*"
CIBW_SKIP: "*musllinux*"
CIBW_ARCHS: ${{ matrix.arch }}
CIBW_MANYLINUX_*_IMAGE: ${{ matrix.manylinux-image }}
CIBW_MANYLINUX_I686_IMAGE: ${{ matrix.manylinux-image }}
test-on-windows:
name: Build wheels on Windows for ${{ matrix.arch }}
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [windows-latest]
python-version: [38, 39, 310, 311, 312, 313]
arch: [AMD64]
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: 3.11
- name: Setup Zig
uses: mlugg/setup-zig@v1
with:
version: 0.13.0
- name: build static zlib for windows
run: |
zig build -Doptimize=ReleaseFast -Dtarget=x86_64-windows-msvc
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install build twine setuptools wheel
- name: Install cibuildwheel
run: python -m pip install cibuildwheel -U
- name: Build wheels
run: python -m cibuildwheel --output-dir wheelhouse
env:
CIBW_BUILD: "cp${{ matrix.python-version }}-*"
CIBW_SKIP: "*musllinux*"
CIBW_ARCHS: ${{ matrix.arch }}
CIBW_MANYLINUX_*_IMAGE: ${{ matrix.manylinux-image }}
CIBW_MANYLINUX_I686_IMAGE: ${{ matrix.manylinux-image }}
test-on-macos:
name: Build wheels on MacOS for ${{ matrix.arch }}
runs-on: ${{ matrix.os }}
strategy:
matrix:
python-version: [38, 39, 310, 311, 312, 313]
include:
- { os: macos-13, arch: x86_64 }
- { os: macos-14, arch: arm64 }
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: 3.11
- name: Setup Zig
uses: mlugg/setup-zig@v1
with:
version: 0.13.0
- name: build static zlib for macos (amd64)
if: ${{ matrix.arch == 'x86_64' }}
run: |
zig build -Doptimize=ReleaseFast -Dtarget=x86_64-macos.13.0
- name: build static zlib for macos (aarch64)
if: ${{ matrix.arch == 'arm64' }}
run: |
zig build -Doptimize=ReleaseFast -Dtarget=aarch64-macos.14.0
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install build twine setuptools wheel
- name: Install cibuildwheel
run: python -m pip install cibuildwheel -U
- name: Build wheels
run: python -m cibuildwheel --output-dir wheelhouse
env:
CIBW_BUILD: "cp${{ matrix.python-version }}-*"
CIBW_SKIP: "*musllinux*"
CIBW_ARCHS: ${{ matrix.arch }}
CIBW_MANYLINUX_*_IMAGE: ${{ matrix.manylinux-image }}
CIBW_MANYLINUX_I686_IMAGE: ${{ matrix.manylinux-image }}