@@ -13,35 +13,55 @@ defaults:
1313 shell : bash
1414
1515jobs :
16- build :
16+ test :
17+ name : build and test on ${{ matrix.host_target }}
1718 strategy :
1819 fail-fast : false
1920 matrix :
2021 include :
21- - os : ubuntu-latest
22- host_target : x86_64-unknown-linux-gnu
23- - os : macos-14
24- host_target : aarch64-apple-darwin
25- - os : windows-latest
26- host_target : i686-pc-windows-msvc
22+ - host_target : x86_64-unknown-linux-gnu
23+ os : ubuntu-latest
24+ # Needs a libffi patch: <https://github.com/libffi-rs/libffi-rs/pull/160>
25+ # - host_target: i686-unknown-linux-gnu
26+ # os: ubuntu-latest
27+ - host_target : aarch64-unknown-linux-gnu
28+ os : ubuntu-24.04-arm
29+ # Disabled due to <https://github.com/rust-lang/rust/issues/143184>.
30+ # - host_target: armv7-unknown-linux-gnueabihf
31+ # os: ubuntu-24.04-arm
32+ - host_target : aarch64-apple-darwin
33+ os : macos-latest
34+ - host_target : i686-pc-windows-msvc
35+ os : windows-latest
2736 runs-on : ${{ matrix.os }}
2837 env :
2938 HOST_TARGET : ${{ matrix.host_target }}
3039 steps :
3140 - uses : actions/checkout@v4
41+ - name : Install multilib dependencies
42+ if : ${{ matrix.host_target == 'i686-unknown-linux-gnu' }}
43+ run : |
44+ sudo dpkg --add-architecture i386
45+ sudo apt update
46+ sudo apt install gcc-multilib zlib1g-dev:i386 libffi-dev:i386
47+ - name : Install multilib dependencies
48+ if : ${{ matrix.host_target == 'armv7-unknown-linux-gnueabihf' }}
49+ run : |
50+ sudo dpkg --add-architecture armhf
51+ sudo apt update
52+ sudo apt install gcc-arm-linux-gnueabihf zlib1g-dev:armhf libffi-dev:armhf
3253 - uses : ./.github/workflows/setup
3354 with :
3455 toolchain_flags : " --host ${{ matrix.host_target }}"
3556
36- # The `style` job only runs on Linux; this makes sure the Windows-host-specific
57+ - name : Test Miri
58+ run : ./ci/ci.sh
59+
60+ # The `style` job only runs on Linux; this makes sure the host-specific
3761 # code is also covered by clippy.
3862 - name : Check clippy
39- if : ${{ matrix.os == 'windows-latest' }}
4063 run : ./miri clippy -- -D warnings
4164
42- - name : Test Miri
43- run : ./ci/ci.sh
44-
4565 style :
4666 name : style checks
4767 runs-on : ubuntu-latest
7393 # ALL THE PREVIOUS JOBS NEED TO BE ADDED TO THE `needs` SECTION OF THIS JOB!
7494 # And they should be added below in `cron-fail-notify` as well.
7595 conclusion :
76- needs : [build , style, coverage]
96+ needs : [test , style, coverage]
7797 # We need to ensure this job does *not* get skipped if its dependencies fail,
7898 # because a skipped job is considered a success by GitHub. So we have to
7999 # overwrite `if:`. We use `!cancelled()` to ensure the job does still not get run
@@ -135,7 +155,7 @@ jobs:
135155 cron-fail-notify :
136156 name : cronjob failure notification
137157 runs-on : ubuntu-latest
138- needs : [build , style, coverage]
158+ needs : [test , style, coverage]
139159 if : ${{ github.event_name == 'schedule' && failure() }}
140160 steps :
141161 # Send a Zulip notification
0 commit comments