Skip to content

Commit 1a01644

Browse files
committed
ci: fix matrix usage
1 parent 74773fe commit 1a01644

File tree

1 file changed

+105
-97
lines changed

1 file changed

+105
-97
lines changed

.github/workflows/main.yml

+105-97
Original file line numberDiff line numberDiff line change
@@ -65,122 +65,130 @@ jobs:
6565
test:
6666
needs: [style]
6767
name: Test
68-
runs-on: ${{ matrix.os }}
68+
runs-on: ${{ matrix.target.os }}
6969
strategy:
7070
matrix:
7171
profile:
7272
- dev
7373
- release
7474
target:
7575
# Dockers that are run through docker on linux
76-
- i686-unknown-linux-gnu
77-
- x86_64-unknown-linux-gnu
78-
- x86_64-unknown-linux-gnu-emulated
79-
- arm-unknown-linux-gnueabihf
80-
- armv7-unknown-linux-gnueabihf
81-
- aarch64-unknown-linux-gnu
82-
- riscv64gc-unknown-linux-gnu
83-
- powerpc64le-unknown-linux-gnu
84-
# MIPS targets disabled since they are dropped to tier 3.
85-
# See https://github.com/rust-lang/compiler-team/issues/648
86-
#- mips-unknown-linux-gnu
87-
#- mips64-unknown-linux-gnuabi64
88-
#- mips64el-unknown-linux-gnuabi64
89-
#- mipsel-unknown-linux-musl
90-
- s390x-unknown-linux-gnu
91-
- wasm32-wasip1
92-
- i586-unknown-linux-gnu
93-
- nvptx64-nvidia-cuda
94-
- thumbv6m-none-eabi
95-
- thumbv7m-none-eabi
96-
- thumbv7em-none-eabi
97-
- thumbv7em-none-eabihf
98-
- loongarch64-unknown-linux-gnu
99-
100-
# macOS targets
101-
- x86_64-apple-darwin
102-
- aarch64-apple-darwin
103-
# FIXME: gh-actions build environment doesn't have linker support
104-
# - i686-apple-darwin
105-
106-
# Windows targets
107-
- x86_64-pc-windows-msvc
108-
- i686-pc-windows-msvc
109-
- aarch64-pc-windows-msvc
110-
- x86_64-pc-windows-gnu
111-
# - i686-pc-windows-gnu:
112-
113-
include:
114-
- target: i686-unknown-linux-gnu
76+
- tuple: i686-unknown-linux-gnu
11577
os: ubuntu-latest
116-
- target: x86_64-unknown-linux-gnu
78+
- tuple: x86_64-unknown-linux-gnu
11779
os: ubuntu-latest
118-
- target: x86_64-unknown-linux-gnu-emulated
80+
- tuple: x86_64-unknown-linux-gnu-emulated
11981
os: ubuntu-latest
120-
test_everything: true
121-
rustflags: --cfg stdarch_intel_sde
122-
- target: arm-unknown-linux-gnueabihf
82+
- tuple: arm-unknown-linux-gnueabihf
83+
os: ubuntu-latest
84+
- tuple: armv7-unknown-linux-gnueabihf
85+
os: ubuntu-latest
86+
- tuple: aarch64-unknown-linux-gnu
87+
os: ubuntu-latest
88+
- tuple: riscv64gc-unknown-linux-gnu
12389
os: ubuntu-latest
124-
- target: armv7-unknown-linux-gnueabihf
90+
- tuple: powerpc64le-unknown-linux-gnu
12591
os: ubuntu-latest
12692
# MIPS targets disabled since they are dropped to tier 3.
12793
# See https://github.com/rust-lang/compiler-team/issues/648
128-
#- target: mips-unknown-linux-gnu
94+
#- tuple: mips-unknown-linux-gnu
12995
# os: ubuntu-latest
130-
# norun: true
131-
#- target: mips64-unknown-linux-gnuabi64
96+
#- tuple: mips64-unknown-linux-gnuabi64
13297
# os: ubuntu-latest
133-
# norun: true
134-
#- target: mips64el-unknown-linux-gnuabi64
98+
#- tuple: mips64el-unknown-linux-gnuabi64
13599
# os: ubuntu-latest
136-
# norun: true
137-
#- target: mipsel-unknown-linux-musl
100+
#- tuple: mipsel-unknown-linux-musl
138101
# os: ubuntu-latest
139-
# norun: 1
140-
- target: powerpc64le-unknown-linux-gnu
102+
- tuple: s390x-unknown-linux-gnu
141103
os: ubuntu-latest
142-
disable_assert_instr: true
143-
- target: s390x-unknown-linux-gnu
104+
- tuple: i586-unknown-linux-gnu
144105
os: ubuntu-latest
145-
- target: wasm32-wasip1
106+
- tuple: nvptx64-nvidia-cuda
146107
os: ubuntu-latest
147-
- target: aarch64-apple-darwin
148-
os: macos-latest
149-
norun: true # https://github.com/rust-lang/stdarch/issues/1206
150-
- target: aarch64-apple-ios-macabi
151-
os: macos-latest
152-
norun: true # https://github.com/rust-lang/stdarch/issues/1206
153-
- target: aarch64-unknown-linux-gnu
108+
- tuple: thumbv6m-none-eabi
109+
os: ubuntu-latest
110+
- tuple: thumbv7m-none-eabi
111+
os: ubuntu-latest
112+
- tuple: thumbv7em-none-eabi
113+
os: ubuntu-latest
114+
- tuple: thumbv7em-none-eabihf
154115
os: ubuntu-latest
155-
- target: x86_64-apple-darwin
116+
- tuple: loongarch64-unknown-linux-gnu
117+
os: ubuntu-latest
118+
- tuple: wasm32-wasip1
119+
os: ubuntu-latest
120+
121+
# macOS targets
122+
- tuple: x86_64-apple-darwin
156123
os: macos-13
157-
- target: x86_64-apple-ios-macabi
124+
- tuple: x86_64-apple-ios-macabi
158125
os: macos-13
159-
- target: x86_64-pc-windows-msvc
126+
- tuple: aarch64-apple-darwin
127+
os: macos-latest
128+
- tuple: aarch64-apple-ios-macabi
129+
os: macos-latest
130+
# FIXME: gh-actions build environment doesn't have linker support
131+
# - tuple: i686-apple-darwin
132+
# os: macos-13
133+
134+
# Windows targets
135+
- tuple: x86_64-pc-windows-msvc
160136
os: windows-latest
161-
- target: i686-pc-windows-msvc
137+
- tuple: i686-pc-windows-msvc
162138
os: windows-latest
163-
- target: aarch64-pc-windows-msvc
139+
- tuple: aarch64-pc-windows-msvc
164140
os: windows-latest
165-
norun: true
166-
- target: x86_64-pc-windows-gnu
141+
- tuple: x86_64-pc-windows-gnu
167142
os: windows-latest
168-
- target: i586-unknown-linux-gnu
169-
os: ubuntu-latest
170-
- target: nvptx64-nvidia-cuda
171-
os: ubuntu-latest
172-
- target: thumbv6m-none-eabi
173-
os: ubuntu-latest
174-
- target: thumbv7m-none-eabi
175-
os: ubuntu-latest
176-
- target: thumbv7em-none-eabi
177-
os: ubuntu-latest
178-
- target: thumbv7em-none-eabihf
179-
os: ubuntu-latest
180-
- target: riscv64gc-unknown-linux-gnu
181-
os: ubuntu-latest
182-
- target: loongarch64-unknown-linux-gnu
183-
os: ubuntu-latest
143+
# - tuple: i686-pc-windows-gnu
144+
# os: windows-latest
145+
146+
# Add additional variables to the matrix variations generated above using `include`:
147+
include:
148+
- target:
149+
tuple: x86_64-unknown-linux-gnu-emulated
150+
os: ubuntu-latest
151+
test_everything: true
152+
rustflags: --cfg stdarch_intel_sde
153+
# MIPS targets disabled since they are dropped to tier 3.
154+
# See https://github.com/rust-lang/compiler-team/issues/648
155+
#- target:
156+
# tuple: mips-unknown-linux-gnu
157+
# os: ubuntu-latest
158+
# norun: true
159+
#- target:
160+
# tuple: mips64-unknown-linux-gnuabi64
161+
# os: ubuntu-latest
162+
# norun: true
163+
#- target:
164+
# tuple: mips64el-unknown-linux-gnuabi64
165+
# os: ubuntu-latest
166+
# norun: true
167+
#- target:
168+
# tuple: mipsel-unknown-linux-musl
169+
# os: ubuntu-latest
170+
# norun: true
171+
- target:
172+
tuple: powerpc64le-unknown-linux-gnu
173+
os: ubuntu-latest
174+
disable_assert_instr: true
175+
- target:
176+
tuple: aarch64-apple-darwin
177+
os: macos-latest
178+
norun: true # https://github.com/rust-lang/stdarch/issues/1206
179+
- target:
180+
tuple: aarch64-apple-ios-macabi
181+
os: macos-latest
182+
norun: true # https://github.com/rust-lang/stdarch/issues/1206
183+
- target:
184+
tuple: aarch64-pc-windows-msvc
185+
os: windows-latest
186+
norun: true
187+
- target:
188+
tuple: x86_64-pc-windows-msvc
189+
os: windows-latest
190+
profile: dev
191+
norun: true # FIXME: why doesn't this work in debug mode?
184192

185193
steps:
186194
- uses: actions/checkout@v4
@@ -190,16 +198,16 @@ jobs:
190198
run: |
191199
rustup update nightly --no-self-update
192200
rustup default nightly
193-
- run: rustup target add ${{ matrix.target }}
194-
if: "!endsWith(matrix.target, 'emulated')"
201+
- run: rustup target add ${{ matrix.target.tuple }}
202+
if: "!endsWith(matrix.target.tuple, 'emulated')"
195203
- run: cargo generate-lockfile
196204

197205
# Configure some env vars based on matrix configuration
198206
- run: echo "PROFILE=--profile=${{matrix.profile}}" >> $GITHUB_ENV
199207
shell: bash
200208
- run: echo "NORUN=1" >> $GITHUB_ENV
201209
shell: bash
202-
if: matrix.norun != '' || startsWith(matrix.target, 'thumb') || matrix.target == 'nvptx64-nvidia-cuda'
210+
if: matrix.norun != '' || startsWith(matrix.target.tuple, 'thumb') || matrix.target.tuple == 'nvptx64-nvidia-cuda'
203211
- run: echo "STDARCH_TEST_EVERYTHING=1" >> $GITHUB_ENV
204212
shell: bash
205213
if: matrix.test_everything != ''
@@ -211,21 +219,21 @@ jobs:
211219
if: matrix.disable_assert_instr != ''
212220
- run: echo "NOSTD=1" >> $GITHUB_ENV
213221
shell: bash
214-
if: startsWith(matrix.target, 'thumb') || matrix.target == 'nvptx64-nvidia-cuda'
222+
if: startsWith(matrix.target.tuple, 'thumb') || matrix.target.tuple == 'nvptx64-nvidia-cuda'
215223

216224
# Windows & OSX go straight to `run.sh` ...
217225
- run: ./ci/run.sh
218226
shell: bash
219-
if: matrix.os != 'ubuntu-latest' || startsWith(matrix.target, 'thumb')
227+
if: matrix.target.os != 'ubuntu-latest' || startsWith(matrix.target.tuple, 'thumb')
220228
env:
221-
TARGET: ${{ matrix.target }}
229+
TARGET: ${{ matrix.target.tuple }}
222230

223231
# ... while Linux goes to `run-docker.sh`
224-
- run: ./ci/run-docker.sh ${{ matrix.target }}
232+
- run: ./ci/run-docker.sh ${{ matrix.target.tuple }}
225233
shell: bash
226-
if: "matrix.os == 'ubuntu-latest' && !startsWith(matrix.target, 'thumb')"
234+
if: "matrix.target.os == 'ubuntu-latest' && !startsWith(matrix.target.tuple, 'thumb')"
227235
env:
228-
TARGET: ${{ matrix.target }}
236+
TARGET: ${{ matrix.target.tuple }}
229237

230238
build-std-detect:
231239
needs: [style]

0 commit comments

Comments
 (0)