Skip to content

Commit 3d5dd1d

Browse files
author
Guillaume Lessard
committed
fix(release): unbreak the aarch64 and musllinux wheel jobs
Two different faults, both surfaced only because release-build finally ran. aarch64 Linux never built. sccache wrapping the cross-assembler breaks ring's .S files: aarch64-unknown-linux-gnu-gcc is invoked on chacha-armv8-linux64.S without __ARM_ARCH defined, and ring's asm_base.h fails the build with `#error "ARM assembler must define __ARM_ARCH"`. Disable sccache for that one job. Native aarch64 (macos-14) is unaffected and keeps its cache; ring is already at its latest compatible version, so there is nothing to bump. musllinux built perfectly and then failed its own smoke test. The step ran on a glibc runner and tried to pip install a musl wheel, which pip correctly refused: "not a supported wheel on this platform". The guard excluded aarch64 but not musllinux. Both are now excluded, because a runner that cannot install a wheel cannot smoke-test it. They are still built, platform-tag verified and uploaded - skipping is honest, faking a pass would not be.
1 parent bbb3ac0 commit 3d5dd1d

1 file changed

Lines changed: 18 additions & 5 deletions

File tree

.github/workflows/release-build.yml

Lines changed: 18 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -88,16 +88,29 @@ jobs:
8888
--out dist
8989
--no-default-features
9090
--features abi3${{ matrix.features && format(',{0}', matrix.features) || '' }}
91-
sccache: "true"
91+
# sccache is disabled for the Linux aarch64 cross-build. Wrapping the
92+
# cross-assembler breaks ring's .S files: `aarch64-unknown-linux-gnu-gcc`
93+
# is invoked on chacha-armv8-linux64.S without __ARM_ARCH defined, and
94+
# ring's asm_base.h then fails the build outright with
95+
# `#error "ARM assembler must define __ARM_ARCH"`. Native aarch64
96+
# (macos-14) is unaffected and keeps the cache.
97+
sccache: ${{ !(matrix.os == 'ubuntu-latest' && matrix.target == 'aarch64') }}
9298

9399
- name: Show built wheels
94100
shell: bash
95101
run: ls -la dist/
96102

97-
# Native-arch wheels only: an aarch64 wheel cannot be imported on an
98-
# x86_64 runner, so skip the smoke test rather than fake it.
99-
- name: Smoke test — import and version
100-
if: matrix.target != 'aarch64' || matrix.os == 'macos-14'
103+
# Only smoke-test wheels the runner can actually install. Two cases are
104+
# excluded, and both previously failed here for that reason alone:
105+
# * aarch64 built on an x86_64 host - wrong architecture;
106+
# * musllinux built on a glibc host - the wheel builds correctly, then
107+
# pip rejects it with "not a supported wheel on this platform".
108+
# Skipping is honest; faking a pass would not be. Both are still built,
109+
# verified for platform tag, and uploaded.
110+
- name: Smoke test — import and decode
111+
if: >-
112+
(matrix.target != 'aarch64' || matrix.os == 'macos-14')
113+
&& matrix.manylinux != 'musllinux_1_2'
101114
shell: bash
102115
run: |
103116
python -m pip install --upgrade pip

0 commit comments

Comments
 (0)