Skip to content

Commit 42a00a6

Browse files
daxpryceCopilot
andauthored
ci: update actions and fix ARM manylinux container usage (#72)
Action version bumps (Node.js 24 compatibility): - actions/upload-artifact v4 → v7 - actions/download-artifact v4 → v8 - astral-sh/setup-uv v6 → v7 Fix ARM Linux wheel platform tags: - The default maturin-action containers for aarch64 are cross-compilation images (ghcr.io/rust-cross/*-cross:aarch64) intended for x86_64 hosts. On native ARM runners (ubuntu-24.04-arm), the action detects matching architecture and skips the container, building natively — which produces 'linux_aarch64' tags that PyPI rejects. - Fix: explicitly set container to native aarch64 images: - manylinux: quay.io/pypa/manylinux2014_aarch64 - musllinux: quay.io/pypa/musllinux_1_2_aarch64 - Add safety-net filter steps to remove any stray linux_* or non-universal2 wheels before artifact upload. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1 parent d738fd1 commit 42a00a6

2 files changed

Lines changed: 33 additions & 9 deletions

File tree

.github/workflows/ci.yml

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ jobs:
2626
- runner: ubuntu-24.04-arm
2727
target: aarch64
2828
manylinux: "2014"
29-
container: "2014"
29+
container: "quay.io/pypa/manylinux2014_aarch64"
3030
args: -m packages/pyo3/Cargo.toml --release
3131
artifact_name: dist-linux-aarch64
3232
- runner: ubuntu-latest
@@ -37,7 +37,7 @@ jobs:
3737
- runner: ubuntu-24.04-arm
3838
target: aarch64
3939
manylinux: musllinux_1_2
40-
container: musllinux_1_2
40+
container: "quay.io/pypa/musllinux_1_2_aarch64"
4141
args: -m packages/pyo3/Cargo.toml --release
4242
artifact_name: dist-musllinux-aarch64
4343
- runner: windows-latest
@@ -54,7 +54,7 @@ jobs:
5454
artifact_name: dist-macos-universal2
5555
steps:
5656
- uses: actions/checkout@v6
57-
- uses: astral-sh/setup-uv@v6
57+
- uses: astral-sh/setup-uv@v7
5858
- name: Rust Unittests
5959
run: |
6060
cargo test --manifest-path packages/network_partitions/Cargo.toml
@@ -86,7 +86,19 @@ jobs:
8686
uv run python -m unittest
8787
shell: bash
8888

89-
- uses: actions/upload-artifact@v4
89+
- name: Remove non-manylinux Linux wheels
90+
if: ${{ startsWith(matrix.runner, 'ubuntu') }}
91+
run: |
92+
find target/wheels -name '*-linux_*.whl' -delete
93+
shell: bash
94+
95+
- name: Remove non-universal2 macOS wheels
96+
if: ${{ startsWith(matrix.runner, 'macos') && contains(matrix.target, 'universal2') }}
97+
run: |
98+
find target/wheels -name '*.whl' ! -name '*universal2*' -delete
99+
shell: bash
100+
101+
- uses: actions/upload-artifact@v7
90102
with:
91103
name: ${{ matrix.artifact_name }}
92104
path: |

.github/workflows/publish.yml

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ jobs:
4646
- runner: ubuntu-24.04-arm
4747
target: aarch64
4848
manylinux: "2014"
49-
container: "2014"
49+
container: "quay.io/pypa/manylinux2014_aarch64"
5050
args: -m packages/pyo3/Cargo.toml --release
5151
artifact_name: dist-linux-aarch64
5252
- runner: ubuntu-latest
@@ -57,7 +57,7 @@ jobs:
5757
- runner: ubuntu-24.04-arm
5858
target: aarch64
5959
manylinux: musllinux_1_2
60-
container: musllinux_1_2
60+
container: "quay.io/pypa/musllinux_1_2_aarch64"
6161
args: -m packages/pyo3/Cargo.toml --release
6262
artifact_name: dist-musllinux-aarch64
6363
- runner: windows-latest
@@ -74,7 +74,7 @@ jobs:
7474
artifact_name: dist-macos-universal2
7575
steps:
7676
- uses: actions/checkout@v6
77-
- uses: astral-sh/setup-uv@v6
77+
- uses: astral-sh/setup-uv@v7
7878

7979
- name: Rust Unittests
8080
run: |
@@ -107,7 +107,19 @@ jobs:
107107
uv run python -m unittest
108108
shell: bash
109109

110-
- uses: actions/upload-artifact@v4
110+
- name: Remove non-manylinux Linux wheels
111+
if: ${{ startsWith(matrix.runner, 'ubuntu') }}
112+
run: |
113+
find target/wheels -name '*-linux_*.whl' -delete
114+
shell: bash
115+
116+
- name: Remove non-universal2 macOS wheels
117+
if: ${{ startsWith(matrix.runner, 'macos') && contains(matrix.target, 'universal2') }}
118+
run: |
119+
find target/wheels -name '*.whl' ! -name '*universal2*' -delete
120+
shell: bash
121+
122+
- uses: actions/upload-artifact@v7
111123
with:
112124
name: ${{ matrix.artifact_name }}
113125
path: |
@@ -123,7 +135,7 @@ jobs:
123135
contents: write
124136
steps:
125137
- uses: actions/checkout@v6
126-
- uses: actions/download-artifact@v4
138+
- uses: actions/download-artifact@v8
127139
with:
128140
pattern: dist-*
129141
merge-multiple: true

0 commit comments

Comments
 (0)