From 99035b044b922652b3eaeef3e312d9713310c05f Mon Sep 17 00:00:00 2001 From: Agriya Khetarpal <74401230+agriyakhetarpal@users.noreply.github.com> Date: Wed, 13 Mar 2024 00:40:29 +0530 Subject: [PATCH 1/4] CI: Build macOS arm64 wheels on `macos-14` CI: exclude macOS runners based on architecture --- .github/workflows/wheel_tests_and_release.yml | 27 ++++++++++++++----- 1 file changed, 21 insertions(+), 6 deletions(-) diff --git a/.github/workflows/wheel_tests_and_release.yml b/.github/workflows/wheel_tests_and_release.yml index 512304d8..bce39456 100644 --- a/.github/workflows/wheel_tests_and_release.yml +++ b/.github/workflows/wheel_tests_and_release.yml @@ -29,7 +29,7 @@ env: jobs: build_linux_x86_64_wheels: - name: Build python ${{ matrix.cibw_python }} ${{ matrix.cibw_arch }} wheels on ${{ matrix.os }} + name: Build ${{ matrix.cibw_python }} ${{ matrix.cibw_arch }} ${{ matrix.os }} runs-on: ${{ matrix.os }} strategy: fail-fast: false @@ -63,7 +63,7 @@ jobs: if-no-files-found: error build_linux_aarch64_wheels: - name: Build python ${{ matrix.cibw_python }} aarch64 wheels on ${{ matrix.os }} + name: Build ${{ matrix.cibw_python }} ${{ matrix.cibw_arch }} ${{ matrix.os }} runs-on: ${{ matrix.os }} strategy: fail-fast: false @@ -99,14 +99,19 @@ jobs: path: ./dist/*.whl build_macos_wheels: - name: Build python ${{ matrix.cibw_python }} ${{ matrix.cibw_arch }} wheels on ${{ matrix.os }} + name: Build ${{ matrix.cibw_python }} ${{ matrix.cibw_arch }} ${{ matrix.os }} runs-on: ${{ matrix.os }} strategy: fail-fast: false matrix: - os: [macos-latest] + os: [macos-latest, macos-14] cibw_python: ["cp39", "cp310", "cp311", "cp312"] cibw_arch: ["x86_64", "arm64"] + exclude: + - os: macos-14 + cibw_arch: "x86_64" + - os: macos-latest + cibw_arch: "arm64" steps: - uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 # v4.1.2 with: @@ -117,7 +122,17 @@ jobs: with: python-version: "3.9" - - name: Build wheels for CPython (macOS) + - name: Build wheels for CPython (macOS) (x86_64) + if: matrix.cibw_arch == 'x86_64' && matrix.os == 'macos-latest' + uses: pypa/cibuildwheel@8d945475ac4b1aac4ae08b2fd27db9917158b6ce # 2.17.0 + with: + output-dir: dist + env: + CIBW_BUILD: ${{ matrix.cibw_python }}-* + CIBW_ARCHS_MACOS: ${{ matrix.cibw_arch }} + + - name: Build wheels for CPython (macOS) (arm64) + if: matrix.cibw_arch == 'arm64' && matrix.os == 'macos-14' uses: pypa/cibuildwheel@8d945475ac4b1aac4ae08b2fd27db9917158b6ce # 2.17.0 with: output-dir: dist @@ -132,7 +147,7 @@ jobs: if-no-files-found: error build_windows_wheels: - name: Build ${{ matrix.cibw_python }} ${{ matrix.cibw_arch }} wheels on ${{ matrix.os }} + name: Build ${{ matrix.cibw_python }} ${{ matrix.cibw_arch }} ${{ matrix.os }} runs-on: ${{ matrix.os }} strategy: fail-fast: false From 25d28dc59fbeca9066feb010dc9c1e5d70076dc2 Mon Sep 17 00:00:00 2001 From: Agriya Khetarpal <74401230+agriyakhetarpal@users.noreply.github.com> Date: Wed, 13 Mar 2024 01:41:05 +0530 Subject: [PATCH 2/4] CI: Build MUSL 1.1 aarch64, x86_64 wheels (Linux) --- .github/workflows/wheel_tests_and_release.yml | 23 ++++++++----------- 1 file changed, 10 insertions(+), 13 deletions(-) diff --git a/.github/workflows/wheel_tests_and_release.yml b/.github/workflows/wheel_tests_and_release.yml index bce39456..e2a8d44e 100644 --- a/.github/workflows/wheel_tests_and_release.yml +++ b/.github/workflows/wheel_tests_and_release.yml @@ -8,12 +8,12 @@ on: # Runs on every merge to master to upload .dev0 wheels to anaconda.org - master - v1.** - # Make it possible to upload wheels manually if needed + # Make it possible to upload wheels manually if needed (for anaconda.org only, not PyPI) workflow_dispatch: inputs: push_wheels: description: > - 'Push wheels to Anaconda if "true". Default is "false". Warning: this will overwrite existing wheels.' + Push wheels to Anaconda if "true". Default is "false". Warning: this will overwrite existing wheels. required: false default: "false" # Upload wheels to anaconda.org on a schedule @@ -22,7 +22,6 @@ on: - cron: "0 3 3,17 * *" env: CIBW_BUILD_VERBOSITY: 2 - # CIBW_BEFORE_BUILD: pip install cython CIBW_TEST_REQUIRES: pytest CIBW_TEST_COMMAND: pytest --pyargs pywt -m "not slow" CIBW_ENVIRONMENT: PIP_PREFER_BINARY=1 @@ -36,7 +35,6 @@ jobs: matrix: os: [ubuntu-latest] cibw_python: ["cp39", "cp310", "cp311", "cp312"] - cibw_manylinux: [manylinux2014] cibw_arch: ["x86_64"] steps: - uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 # v4.1.2 @@ -53,12 +51,12 @@ jobs: env: CIBW_BUILD: ${{ matrix.cibw_python }}-* CIBW_ARCHS_LINUX: ${{ matrix.cibw_arch }} - CIBW_SKIP: "*-musllinux_*" - CIBW_MANYLINUX_X86_64_IMAGE: ${{ matrix.cibw_manylinux }} - CIBW_MANYLINUX_I686_IMAGE: "manylinux2010" + CIBW_MANYLINUX_X86_64_IMAGE: manylinux2014 + CIBW_MANYLINUX_I686_IMAGE: manylinux2014 + CIBW_MUSLLINUX_X86_64_IMAGE: musllinux_1_1 - uses: actions/upload-artifact@5d5d22a31266ced268874388b861e4b58bb5c2f3 # v4.3.1 with: - name: wheels_linux_${{ matrix.cibw_arch }}_${{ matrix.cibw_python }}_manylinux2014 + name: wheels_linux_${{ matrix.cibw_arch }}_${{ matrix.cibw_python }} path: ./dist/*.whl if-no-files-found: error @@ -70,7 +68,6 @@ jobs: matrix: os: [ubuntu-latest] cibw_python: ["cp39", "cp310", "cp311", "cp312"] - cibw_manylinux: [manylinux2014] cibw_arch: ["aarch64"] steps: - uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 # v4.1.2 @@ -91,11 +88,11 @@ jobs: env: CIBW_BUILD: ${{ matrix.cibw_python }}-* CIBW_ARCHS_LINUX: ${{ matrix.cibw_arch }} - CIBW_SKIP: "*-musllinux_*" - CIBW_MANYLINUX_X86_64_IMAGE: ${{ matrix.cibw_manylinux }} + CIBW_MANYLINUX_AARCH64_IMAGE: manylinux2014 + CIBW_MUSLLINUX_AARCH64_IMAGE: musllinux_1_1 - uses: actions/upload-artifact@5d5d22a31266ced268874388b861e4b58bb5c2f3 # v4.3.1 with: - name: wheels_linux_${{ matrix.cibw_arch }}_${{ matrix.cibw_python }}_manylinux2014 + name: wheels_linux_${{ matrix.cibw_arch }}_${{ matrix.cibw_python }} path: ./dist/*.whl build_macos_wheels: @@ -120,7 +117,7 @@ jobs: - uses: actions/setup-python@v5 name: Install Python with: - python-version: "3.9" + python-version: "3.12" - name: Build wheels for CPython (macOS) (x86_64) if: matrix.cibw_arch == 'x86_64' && matrix.os == 'macos-latest' From 868515d5e0ac1f8038c910415a754ece5189b82a Mon Sep 17 00:00:00 2001 From: Agriya Khetarpal <74401230+agriyakhetarpal@users.noreply.github.com> Date: Wed, 13 Mar 2024 14:56:23 +0530 Subject: [PATCH 3/4] =?UTF-8?q?CI:=20change=20`macos-latest`=20=E2=9E=A1?= =?UTF-8?q?=EF=B8=8F=20`macos-13`=20for=20x86=5F64?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/wheel_tests_and_release.yml | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/.github/workflows/wheel_tests_and_release.yml b/.github/workflows/wheel_tests_and_release.yml index e2a8d44e..dcfc2fcb 100644 --- a/.github/workflows/wheel_tests_and_release.yml +++ b/.github/workflows/wheel_tests_and_release.yml @@ -101,13 +101,14 @@ jobs: strategy: fail-fast: false matrix: - os: [macos-latest, macos-14] + # macos-13 is the last runner that supports Intel (x86_64) architecture + os: [macos-13, macos-14] cibw_python: ["cp39", "cp310", "cp311", "cp312"] cibw_arch: ["x86_64", "arm64"] exclude: - os: macos-14 cibw_arch: "x86_64" - - os: macos-latest + - os: macos-13 cibw_arch: "arm64" steps: - uses: actions/checkout@9bb56186c3b09b4f86b1c65136769dd318469633 # v4.1.2 @@ -120,7 +121,7 @@ jobs: python-version: "3.12" - name: Build wheels for CPython (macOS) (x86_64) - if: matrix.cibw_arch == 'x86_64' && matrix.os == 'macos-latest' + if: matrix.cibw_arch == 'x86_64' uses: pypa/cibuildwheel@8d945475ac4b1aac4ae08b2fd27db9917158b6ce # 2.17.0 with: output-dir: dist @@ -129,7 +130,7 @@ jobs: CIBW_ARCHS_MACOS: ${{ matrix.cibw_arch }} - name: Build wheels for CPython (macOS) (arm64) - if: matrix.cibw_arch == 'arm64' && matrix.os == 'macos-14' + if: matrix.cibw_arch == 'arm64' uses: pypa/cibuildwheel@8d945475ac4b1aac4ae08b2fd27db9917158b6ce # 2.17.0 with: output-dir: dist From 776e3a368ed4ce66d4d2367d96dc44adf9533ce2 Mon Sep 17 00:00:00 2001 From: Agriya Khetarpal <74401230+agriyakhetarpal@users.noreply.github.com> Date: Wed, 13 Mar 2024 16:18:39 +0530 Subject: [PATCH 4/4] CI: Remove reference to manylinux i686 image --- .github/workflows/wheel_tests_and_release.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/wheel_tests_and_release.yml b/.github/workflows/wheel_tests_and_release.yml index dcfc2fcb..ab3f1fde 100644 --- a/.github/workflows/wheel_tests_and_release.yml +++ b/.github/workflows/wheel_tests_and_release.yml @@ -52,7 +52,6 @@ jobs: CIBW_BUILD: ${{ matrix.cibw_python }}-* CIBW_ARCHS_LINUX: ${{ matrix.cibw_arch }} CIBW_MANYLINUX_X86_64_IMAGE: manylinux2014 - CIBW_MANYLINUX_I686_IMAGE: manylinux2014 CIBW_MUSLLINUX_X86_64_IMAGE: musllinux_1_1 - uses: actions/upload-artifact@5d5d22a31266ced268874388b861e4b58bb5c2f3 # v4.3.1 with: