Skip to content

Commit 1e37e95

Browse files
authored
Merge pull request #1777 from EliahKagan/run-ci/arm
Test GNU/Linux ARM builds on the new ARM CI runner
2 parents d5dc5bf + c7f5013 commit 1e37e95

File tree

1 file changed

+20
-34
lines changed

1 file changed

+20
-34
lines changed

.github/workflows/ci.yml

+20-34
Original file line numberDiff line numberDiff line change
@@ -135,6 +135,7 @@ jobs:
135135
- windows-latest
136136
- macos-latest
137137
- ubuntu-latest
138+
- ubuntu-24.04-arm
138139

139140
runs-on: ${{ matrix.os }}
140141

@@ -198,9 +199,22 @@ jobs:
198199
etc/test-fixtures-windows-expected-failures-see-issue-1358.txt actual-failures.txt
199200
200201
test-32bit:
201-
runs-on: ubuntu-latest
202+
strategy:
203+
matrix:
204+
container-arch: [ i386, arm32v7 ]
205+
include:
206+
- container-arch: i386
207+
runner-arch: amd64
208+
runner-os: ubuntu-latest
209+
toolchain: stable-i686-unknown-linux-gnu
210+
- container-arch: arm32v7
211+
runner-arch: arm64
212+
runner-os: ubuntu-24.04-arm
213+
toolchain: stable-armv7-unknown-linux-gnueabihf
202214

203-
container: i386/debian:stable-slim
215+
runs-on: ${{ matrix.runner-os }}
216+
217+
container: ${{ matrix.container-arch }}/debian:stable-slim
204218

205219
steps:
206220
- name: Prerequisites
@@ -213,17 +227,18 @@ jobs:
213227
git
214228
jq
215229
libssl-dev
216-
libstdc++6:amd64 # To support external 64-bit Node.js for actions.
230+
libstdc++6:${{ matrix.runner-arch }} # To support external 64-bit Node.js for actions.
217231
pkgconf
218232
)
219-
dpkg --add-architecture amd64
233+
dpkg --add-architecture ${{ matrix.runner-arch }}
220234
apt-get update
221235
apt-get install --no-install-recommends -y -- "${prerequisites[@]}"
222236
shell: bash
223237
- uses: actions/checkout@v4
224238
- uses: dtolnay/rust-toolchain@stable
225239
with:
226-
toolchain: stable-i686-unknown-linux-gnu # Otherwise it may misdetect based on the amd64 kernel.
240+
# Avoid possible misdetection based on the 64-bit running kernel.
241+
toolchain: ${{ matrix.toolchain }}
227242
- uses: Swatinem/rust-cache@v2
228243
- uses: taiki-e/install-action@v2
229244
with:
@@ -235,34 +250,6 @@ jobs:
235250
GIX_TEST_IGNORE_ARCHIVES: '1'
236251
run: cargo nextest run --workspace --no-fail-fast
237252

238-
test-32bit-cross:
239-
runs-on: ubuntu-latest
240-
241-
strategy:
242-
matrix:
243-
target: [ armv7-linux-androideabi ]
244-
245-
steps:
246-
- uses: actions/checkout@v4
247-
- uses: dtolnay/rust-toolchain@stable
248-
- uses: Swatinem/rust-cache@v2
249-
- name: Install Rust
250-
uses: dtolnay/rust-toolchain@master
251-
with:
252-
toolchain: stable
253-
targets: ${{ matrix.target }}
254-
- name: Install cross
255-
uses: taiki-e/install-action@v2
256-
with:
257-
tool: cross
258-
- name: check
259-
run: cross check -p gix --target ${{ matrix.target }}
260-
- name: Test (unit)
261-
run: |
262-
# Run some high-level unit tests that exercise various pure Rust code to ease building test binaries.
263-
# We would prefer `-p gix`. But with `cross`, fixture scripts try to run amd64 `git` as an armv7 binary.
264-
cross test -p gix-hashtable --target ${{ matrix.target }}
265-
266253
lint:
267254
runs-on: ubuntu-latest
268255

@@ -438,7 +425,6 @@ jobs:
438425
- test-journey
439426
- test-fast
440427
- test-32bit
441-
- test-32bit-cross
442428
- lint
443429
- cargo-deny
444430
- check-packetline

0 commit comments

Comments
 (0)