@@ -13,35 +13,55 @@ defaults:
13
13
shell : bash
14
14
15
15
jobs :
16
- build :
16
+ test :
17
+ name : build and test on ${{ matrix.host_target }}
17
18
strategy :
18
19
fail-fast : false
19
20
matrix :
20
21
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
27
36
runs-on : ${{ matrix.os }}
28
37
env :
29
38
HOST_TARGET : ${{ matrix.host_target }}
30
39
steps :
31
40
- 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
32
53
- uses : ./.github/workflows/setup
33
54
with :
34
55
toolchain_flags : " --host ${{ matrix.host_target }}"
35
56
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
37
61
# code is also covered by clippy.
38
62
- name : Check clippy
39
- if : ${{ matrix.os == 'windows-latest' }}
40
63
run : ./miri clippy -- -D warnings
41
64
42
- - name : Test Miri
43
- run : ./ci/ci.sh
44
-
45
65
style :
46
66
name : style checks
47
67
runs-on : ubuntu-latest
73
93
# ALL THE PREVIOUS JOBS NEED TO BE ADDED TO THE `needs` SECTION OF THIS JOB!
74
94
# And they should be added below in `cron-fail-notify` as well.
75
95
conclusion :
76
- needs : [build , style, coverage]
96
+ needs : [test , style, coverage]
77
97
# We need to ensure this job does *not* get skipped if its dependencies fail,
78
98
# because a skipped job is considered a success by GitHub. So we have to
79
99
# overwrite `if:`. We use `!cancelled()` to ensure the job does still not get run
@@ -135,7 +155,7 @@ jobs:
135
155
cron-fail-notify :
136
156
name : cronjob failure notification
137
157
runs-on : ubuntu-latest
138
- needs : [build , style, coverage]
158
+ needs : [test , style, coverage]
139
159
if : ${{ github.event_name == 'schedule' && failure() }}
140
160
steps :
141
161
# Send a Zulip notification
0 commit comments