From ec293303a97906e1e2b2c10fad4979fdceec473e Mon Sep 17 00:00:00 2001 From: Marius Merschformann Date: Thu, 30 Jan 2025 02:25:00 +0100 Subject: [PATCH 1/5] Moving linux/aarch64 wheel build to native Github runner --- .github/workflows/build-wheels.yml | 21 +++------------------ 1 file changed, 3 insertions(+), 18 deletions(-) diff --git a/.github/workflows/build-wheels.yml b/.github/workflows/build-wheels.yml index 25819ad7e0..0c9b551293 100644 --- a/.github/workflows/build-wheels.yml +++ b/.github/workflows/build-wheels.yml @@ -34,10 +34,10 @@ jobs: buildplat: - [ubuntu-20.04, manylinux_x86_64] - [ubuntu-20.04, manylinux_i686] - - [ubuntu-20.04, manylinux_aarch64] + - [ubuntu-20.04-arm, manylinux_aarch64] - [ubuntu-20.04, musllinux_x86_64] # No OpenBlas, no test - [ubuntu-20.04, musllinux_i686] - - [ubuntu-20.04, musllinux_aarch64] + - [ubuntu-20.04-arm, musllinux_aarch64] - [macos-13, macosx_x86_64] - [macos-14, macosx_arm64] - [windows-2019, win_amd64] @@ -45,22 +45,7 @@ jobs: python: ["cp38", "cp39","cp310", "cp311","cp312", "cp313"] steps: - - uses: actions/checkout@v4 - - name: Set up QEMU # Required for aarch64 builds - if: ${{ contains(matrix.buildplat[1], 'aarch64') }} - uses: docker/setup-qemu-action@v3 - with: - platforms: all - - - name: Build wheels (aarch64) - if: ${{ contains(matrix.buildplat[1], 'aarch64') }} - uses: pypa/cibuildwheel@v2.21 - env: - CIBW_BUILD: ${{ matrix.python }}-${{ matrix.buildplat[1] }} - CIBW_ARCHS_LINUX: aarch64 - - - name: Build wheels (not aarch64) - if: ${{ !contains(matrix.buildplat[1], 'aarch64') }} + - name: Build wheels uses: pypa/cibuildwheel@v2.21 env: CIBW_BUILD: ${{ matrix.python }}-${{ matrix.buildplat[1] }} From e84fc50e0d2546cb1b7cd371373bc65c0984f006 Mon Sep 17 00:00:00 2001 From: Marius Merschformann Date: Thu, 30 Jan 2025 02:56:51 +0100 Subject: [PATCH 2/5] Re-add checkout --- .github/workflows/build-wheels.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/build-wheels.yml b/.github/workflows/build-wheels.yml index 0c9b551293..0cc278d29c 100644 --- a/.github/workflows/build-wheels.yml +++ b/.github/workflows/build-wheels.yml @@ -45,6 +45,7 @@ jobs: python: ["cp38", "cp39","cp310", "cp311","cp312", "cp313"] steps: + - uses: actions/checkout@v4 - name: Build wheels uses: pypa/cibuildwheel@v2.21 env: From 4d6de5114937f81886643018803ad861910a5f7e Mon Sep 17 00:00:00 2001 From: Marius Merschformann Date: Thu, 30 Jan 2025 11:40:00 +0100 Subject: [PATCH 3/5] Fix github runner --- .github/workflows/build-wheels.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build-wheels.yml b/.github/workflows/build-wheels.yml index 0cc278d29c..42b6de0ce9 100644 --- a/.github/workflows/build-wheels.yml +++ b/.github/workflows/build-wheels.yml @@ -34,10 +34,10 @@ jobs: buildplat: - [ubuntu-20.04, manylinux_x86_64] - [ubuntu-20.04, manylinux_i686] - - [ubuntu-20.04-arm, manylinux_aarch64] + - [ubuntu-24.04-arm, manylinux_aarch64] - [ubuntu-20.04, musllinux_x86_64] # No OpenBlas, no test - [ubuntu-20.04, musllinux_i686] - - [ubuntu-20.04-arm, musllinux_aarch64] + - [ubuntu-24.04-arm, musllinux_aarch64] - [macos-13, macosx_x86_64] - [macos-14, macosx_arm64] - [windows-2019, win_amd64] From f760172d86eacc2a1cb79892bd793ea99e765425 Mon Sep 17 00:00:00 2001 From: Marius Merschformann Date: Thu, 30 Jan 2025 17:36:28 +0100 Subject: [PATCH 4/5] Testing python wheels on linux/aarch64 as well, fixing python test version --- .github/workflows/build-python-package.yml | 43 ++++++++++++++++++---- 1 file changed, 36 insertions(+), 7 deletions(-) diff --git a/.github/workflows/build-python-package.yml b/.github/workflows/build-python-package.yml index 0b6c32f2fe..e944e02026 100644 --- a/.github/workflows/build-python-package.yml +++ b/.github/workflows/build-python-package.yml @@ -79,22 +79,22 @@ jobs: # does not seem to provide all necessary modules to find python # from cmake. works on my machine, test the wheels manually runs-on: ubuntu-latest + strategy: + matrix: + python: [3.12] steps: - uses: actions/checkout@v4 - # strategy: - # matrix: - # python: [3.12] - name: Install correct python version uses: actions/setup-python@v5 - # with: - # python-version: ${{ matrix.python }} + with: + python-version: ${{ matrix.python }} - name: Build wheel run: | python3 --version python3 -m pip install cibuildwheel - python3 -m cibuildwheel --only cp310-manylinux_x86_64 $GITHUB_WORKSPACE + python3 -m cibuildwheel --only cp311-manylinux_x86_64 $GITHUB_WORKSPACE - name: Install wheel run: | @@ -105,7 +105,36 @@ jobs: run: | python3 -m pip install pytest python3 -m pytest $GITHUB_WORKSPACE - + + build_wheel_linux_arm: + runs-on: ubuntu-24.04-arm + strategy: + matrix: + python: [3.12] + steps: + - uses: actions/checkout@v4 + + - name: Install python + uses: actions/setup-python@v5 + with: + python-version: ${{ matrix.python }} + + - name: Build wheel + run: | + python3 --version + python3 -m pip install cibuildwheel + python3 -m cibuildwheel --only cp311-manylinux_aarch64 $GITHUB_WORKSPACE + + - name: Install wheel + run: | + ls wheelhouse + python3 -m pip install wheelhouse/*.whl + + - name: Test highspy + run: | + python3 -m pip install pytest + python3 -m pytest $GITHUB_WORKSPACE + # macos 13 is Intel build_wheel_macos_13: runs-on: macos-13 From fb910f05aded9fc3375a6ea49d51f971b96d9195 Mon Sep 17 00:00:00 2001 From: Marius Merschformann Date: Thu, 30 Jan 2025 17:43:26 +0100 Subject: [PATCH 5/5] Harmonizing ubuntu versions, aligning inactive wheels push workflow --- .github/workflows/build-python-package.yml | 2 +- .github/workflows/build-wheels-push.yml | 28 ++++++---------------- .github/workflows/build-wheels.yml | 8 +++---- 3 files changed, 12 insertions(+), 26 deletions(-) diff --git a/.github/workflows/build-python-package.yml b/.github/workflows/build-python-package.yml index 702f9f9aad..df73a2e47a 100644 --- a/.github/workflows/build-python-package.yml +++ b/.github/workflows/build-python-package.yml @@ -75,7 +75,7 @@ jobs: python -m pytest build_wheel_linux: - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 strategy: matrix: python: [3.11] diff --git a/.github/workflows/build-wheels-push.yml b/.github/workflows/build-wheels-push.yml index b38ebd2280..19851951d7 100644 --- a/.github/workflows/build-wheels-push.yml +++ b/.github/workflows/build-wheels-push.yml @@ -43,12 +43,12 @@ jobs: # Github Actions doesn't support pairing matrix values together, let's improvise # https://github.com/github/feedback/discussions/7835#discussioncomment-1769026 buildplat: - - [ubuntu-20.04, manylinux_x86_64] - - [ubuntu-20.04, manylinux_i686] - - [ubuntu-20.04, manylinux_aarch64] - - [ubuntu-20.04, musllinux_x86_64] # No OpenBlas, no test - - [ubuntu-20.04, musllinux_i686] - - [ubuntu-20.04, musllinux_aarch64] + - [ubuntu-24.04, manylinux_x86_64] + - [ubuntu-24.04, manylinux_i686] + - [ubuntu-24.04-arm, manylinux_aarch64] + - [ubuntu-24.04, musllinux_x86_64] # No OpenBlas, no test + - [ubuntu-24.04, musllinux_i686] + - [ubuntu-24.04-arm, musllinux_aarch64] - [macos-13, macosx_x86_64] - [macos-14, macosx_arm64] - [windows-2019, win_amd64] @@ -58,21 +58,7 @@ jobs: steps: - uses: actions/checkout@v4 - - name: Set up QEMU # Required for aarch64 builds - if: ${{ contains(matrix.buildplat[1], 'aarch64') }} - uses: docker/setup-qemu-action@v3 - with: - platforms: all - - - name: Build wheels (aarch64) - if: ${{ contains(matrix.buildplat[1], 'aarch64') }} - uses: pypa/cibuildwheel@v2.21 - env: - CIBW_BUILD: ${{ matrix.python }}-${{ matrix.buildplat[1] }} - CIBW_ARCHS_LINUX: aarch64 - - - name: Build wheels (not aarch64) - if: ${{ !contains(matrix.buildplat[1], 'aarch64') }} + - name: Build wheels uses: pypa/cibuildwheel@v2.21 env: CIBW_BUILD: ${{ matrix.python }}-${{ matrix.buildplat[1] }} diff --git a/.github/workflows/build-wheels.yml b/.github/workflows/build-wheels.yml index 42b6de0ce9..02ad4908c8 100644 --- a/.github/workflows/build-wheels.yml +++ b/.github/workflows/build-wheels.yml @@ -32,11 +32,11 @@ jobs: # Github Actions doesn't support pairing matrix values together, let's improvise # https://github.com/github/feedback/discussions/7835#discussioncomment-1769026 buildplat: - - [ubuntu-20.04, manylinux_x86_64] - - [ubuntu-20.04, manylinux_i686] + - [ubuntu-24.04, manylinux_x86_64] + - [ubuntu-24.04, manylinux_i686] - [ubuntu-24.04-arm, manylinux_aarch64] - - [ubuntu-20.04, musllinux_x86_64] # No OpenBlas, no test - - [ubuntu-20.04, musllinux_i686] + - [ubuntu-24.04, musllinux_x86_64] # No OpenBlas, no test + - [ubuntu-24.04, musllinux_i686] - [ubuntu-24.04-arm, musllinux_aarch64] - [macos-13, macosx_x86_64] - [macos-14, macosx_arm64]