aboutsummaryrefslogtreecommitdiff
path: root/.github/workflows/release.yml
diff options
context:
space:
mode:
authorElvis Pranskevichus <elvis@edgedb.com>2021-08-07 10:46:53 -0700
committerGitHub <noreply@github.com>2021-08-07 10:46:53 -0700
commitf671cb4dbb84e5e575757bdf9c053ee797863eae (patch)
tree5decfc7bd1c6dcd999225c522abbdd2fd4798855 /.github/workflows/release.yml
parent189b959d2e5f09660508482398414e2869c074ff (diff)
downloadimmutables-f671cb4dbb84e5e575757bdf9c053ee797863eae.tar.gz
immutables-f671cb4dbb84e5e575757bdf9c053ee797863eae.zip
Use cibuildwheel to build wheels (#70)
The cibuildwheel infra seems to be mature enough, so use it for the wheel-building step instead of the homegrown setup. This gives us 32-bit and ARM wheels for free. Fixes: #44 Fixes: #63
Diffstat (limited to '.github/workflows/release.yml')
-rw-r--r--.github/workflows/release.yml83
1 files changed, 32 insertions, 51 deletions
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index 7e2c51b..fb948c2 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -35,7 +35,7 @@ jobs:
mkdir -p dist/
echo "${VERSION}" > dist/VERSION
- - uses: actions/upload-artifact@v1
+ - uses: actions/upload-artifact@v2
with:
name: dist
path: dist/
@@ -50,34 +50,30 @@ jobs:
fetch-depth: 50
submodules: true
- - name: Set up Python 3.7
- uses: actions/setup-python@v2
- with:
- python-version: 3.7
+ - uses: actions/setup-python@v2
- name: Build source distribution
run: |
- pip install -U setuptools wheel pip
+ python -m pip install -U setuptools wheel pip
python setup.py sdist
- - uses: actions/upload-artifact@v1
+ - uses: actions/upload-artifact@v2
with:
name: dist
- path: dist/
+ path: dist/*.tar.*
build-wheels:
needs: validate-release-request
runs-on: ${{ matrix.os }}
strategy:
matrix:
- python-version: [3.5, 3.6, 3.7, 3.8, 3.9]
- os: [ubuntu-16.04, macos-latest, windows-latest]
- exclude:
- # Python 3.5 is unable to properly
- # find the recent VS tooling
- # https://bugs.python.org/issue30389
- - os: windows-latest
- python-version: 3.5
+ os: [ubuntu-latest, macos-latest, windows-latest]
+ cibw_arch: [auto]
+ include:
+ - os: ubuntu-latest
+ cibw_arch: aarch64
+ - os: macos-latest
+ cibw_arch: universal2
steps:
- uses: actions/checkout@v2
@@ -85,45 +81,30 @@ jobs:
fetch-depth: 50
submodules: true
- - name: Set up Python ${{ matrix.python-version }}
- uses: actions/setup-python@v2
+ - name: Set up QEMU
+ if: matrix.os == 'ubuntu-latest' && matrix.cibw_arch == 'aarch64'
+ uses: docker/setup-qemu-action@v1
with:
- python-version: ${{ matrix.python-version }}
-
- - name: Install Python Deps
- run: |
- python -m pip install --upgrade setuptools pip wheel
+ platforms: arm64
- - name: Test
- run: |
- make debug && make test
-
- - name: Build Wheels (linux)
- if: startsWith(matrix.os, 'ubuntu')
- uses: docker://quay.io/pypa/manylinux1_x86_64
+ - uses: pypa/cibuildwheel@v2.0.1
env:
- PYTHON_VERSION: ${{ matrix.python-version }}
- with:
- entrypoint: /github/workspace/.github/workflows/build-manylinux-wheels.sh
-
- - name: Build Wheels (non-linux)
- if: "!startsWith(matrix.os, 'ubuntu')"
- run: |
- make clean
- python setup.py bdist_wheel
-
- - name: Test Wheels
- shell: bash
- if: |
- !contains(github.event.pull_request.labels.*.name, 'skip wheel tests')
- run: |
- pip install --pre immutables -f "file:///${GITHUB_WORKSPACE}/dist"
- make -C "${GITHUB_WORKSPACE}" testinstalled
-
- - uses: actions/upload-artifact@v1
+ CIBW_BUILD_VERBOSITY: 1
+ CIBW_BUILD: "cp36-* cp37-* cp38-* cp39-*"
+ CIBW_ARCHS: ${{ matrix.cibw_arch }}
+ CIBW_MANYLINUX_X86_64_IMAGE: quay.io/pypa/manylinux1_x86_64
+ CIBW_MANYLINUX_I686_IMAGE: quay.io/pypa/manylinux1_i686
+ CIBW_SKIP: "pp*"
+ CIBW_TEST_EXTRAS: "test"
+ CIBW_TEST_COMMAND: "cd .. && python {project}/tests/__init__.py"
+ CIBW_TEST_COMMAND_WINDOWS: "cd .. && python {project}\\tests\\__init__.py"
+ CIBW_TEST_SKIP: "*universal2:arm64"
+ CIBW_ENVIRONMENT: "IMMU_SKIP_MYPY_TESTS=1"
+
+ - uses: actions/upload-artifact@v2
with:
name: dist
- path: dist/
+ path: wheelhouse/*.whl
publish:
needs: [build-sdist, build-wheels]
@@ -135,7 +116,7 @@ jobs:
fetch-depth: 5
submodules: false
- - uses: actions/download-artifact@v1
+ - uses: actions/download-artifact@v2
with:
name: dist
path: dist/