1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160
|
---
name: Packages
on:
- workflow_dispatch
jobs:
build-sdist:
name: Build sdist package
runs-on: ubuntu-24.04
steps:
- name: Checkout repos
uses: actions/checkout@v4
- name: Build sdist
run: python setup.py sdist
- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
name: sdist
path: ./dist/*
build-wheel:
runs-on: ${{matrix.os}}
strategy:
fail-fast: false
matrix:
os: [ubuntu-24.04, windows-latest, macos-latest]
pyver: [cp38, cp39, cp310, cp311, cp312, cp313, cp313t, cp314, cp314t]
steps:
- name: Checkout repos
uses: actions/checkout@v4
- name: Build wheels
uses: pypa/cibuildwheel@v3.1.4
env:
CIBW_BUILD: ${{matrix.pyver}}-*
CIBW_ARCHS_LINUX: auto
CIBW_ARCHS_MACOS: auto universal2
CIBW_ARCHS_WINDOWS: auto
CIBW_TEST_COMMAND: pytest --color=yes -m 'not embedded' {project}/tests
# Passing a space in a param is a b*tch on windows.
# However embedded tests are skipped anyway there.
CIBW_TEST_COMMAND_WINDOWS: pytest --color=yes {project}/tests
# musllinux tests fail with some pid mixup
# cross-build macos images can't be tested on this runner.
CIBW_TEST_SKIP: >-
*-musllinux_*
*-macosx_universal2:arm64
- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
name: wheel-${{ matrix.pyver }}-${{ matrix.os }}
path: ./wheelhouse/*.whl
build-cross-wheel:
runs-on: ubuntu-24.04
strategy:
fail-fast: false
matrix:
pyver: [cp38, cp39, cp310, cp311, cp312, cp313, cp313t, cp314, cp314t]
arch: [aarch64, ppc64le]
steps:
- name: Checkout repos
uses: actions/checkout@v4
- name: Set up QEMU for multi-arch build
uses: docker/setup-qemu-action@v3
- name: Build wheels
uses: pypa/cibuildwheel@v3.1.4
env:
CIBW_BUILD: ${{matrix.pyver}}-*
CIBW_ARCHS: ${{matrix.arch}}
# Tests mostly fail because of some confusion with the python interpreter
- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
name: wheel-${{ matrix.pyver }}-${{ matrix.arch }}
path: ./wheelhouse/*.whl
build-wheel-pypy:
runs-on: ${{matrix.os}}
strategy:
fail-fast: false
matrix:
os: [ubuntu-24.04, windows-latest, macos-latest]
steps:
- name: Checkout repos
uses: actions/checkout@v4
- name: Build wheels
uses: pypa/cibuildwheel@v3.1.4
env:
CIBW_BUILD: pp*
CIBW_TEST_COMMAND: pytest --color=yes -m 'not embedded' {project}/tests
# Passing a space in a param is a b*tch on windows.
# However embedded tests are skipped anyway there.
CIBW_TEST_COMMAND_WINDOWS: pytest --color=yes {project}/tests
# musllinux tests fail with some pid mixup
# cross-build macos images can't be tested on this runner.
CIBW_TEST_SKIP: >-
*-musllinux_*
pp*-macosx_*
- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
name: wheels-pp-${{ matrix.os }}
path: ./wheelhouse/*.whl
build-cross-wheel-pypy:
runs-on: ubuntu-24.04
steps:
- name: Checkout repos
uses: actions/checkout@v4
- name: Set up QEMU for multi-arch build
uses: docker/setup-qemu-action@v3
- name: Build wheels
uses: pypa/cibuildwheel@v3.1.4
env:
CIBW_BUILD: pp*
# Tests mostly fail because of some confusion with the python interpreter
- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
name: wheels-pp-cross
path: ./wheelhouse/*.whl
merge:
runs-on: ubuntu-latest
needs:
- build-sdist
- build-wheel
- build-cross-wheel
- build-wheel-pypy
- build-cross-wheel-pypy
steps:
- name: Merge Artifacts
uses: actions/upload-artifact/merge@v4
with:
name: setproctitle-artifacts
delete-merged: true
|