20
20
# - Cargo.toml
21
21
# - README.md
22
22
rust_minver : 1.63.0
23
+ ci_targets : " ['', 'x86_64-apple-ios', 'x86_64-unknown-freebsd', 'x86_64-unknown-illumos', 'aarch64-linux-android']"
23
24
24
25
defaults :
25
26
run :
26
27
shell : bash
27
28
28
29
jobs :
30
+ matrix :
31
+ strategy :
32
+ fail-fast : false
33
+ runs-on : ubuntu-latest
34
+ outputs :
35
+ ci_targets : ${{ steps.generate.outputs.ci_targets }}
36
+ steps :
37
+ - name : Generate matrix
38
+ id : generate
39
+ run : echo "ci_targets=${{ env.ci_targets }}" >> $GITHUB_OUTPUT
40
+
29
41
format :
30
42
strategy :
31
43
fail-fast : false
@@ -78,17 +90,24 @@ jobs:
78
90
done
79
91
80
92
clippy :
93
+ needs : [matrix]
81
94
strategy :
82
95
fail-fast : false
83
96
matrix :
84
97
os : ['ubuntu-latest', 'windows-latest', 'macos-latest']
98
+ target : ${{ fromJSON(needs.matrix.outputs.ci_targets) }}
85
99
runs-on : ${{ matrix.os }}
86
100
steps :
87
101
- name : Checkout repository
88
102
uses : actions/checkout@v4
89
103
- name : Install dependencies
90
104
if : matrix.os == 'ubuntu-latest'
91
105
run : sudo bash ./.github/workflows/install-deps.sh
106
+ - name : Install Rust target
107
+ if : matrix.target != ''
108
+ run : |
109
+ rustup target add ${{ matrix.target }}
110
+ echo 'CARGO_BUILD_TARGET=${{ matrix.target }}' >> $GITHUB_ENV
92
111
- name : Install Rust nightly
93
112
run : |
94
113
rustup toolchain install nightly
@@ -115,11 +134,12 @@ jobs:
115
134
fi
116
135
117
136
check :
137
+ needs : [matrix]
118
138
strategy :
119
139
fail-fast : false
120
140
matrix :
121
141
os : ['ubuntu-latest', 'windows-latest', 'macos-latest']
122
- target : ['', 'x86_64-apple-ios', 'x86_64-unknown-freebsd', 'x86_64-unknown-illumos', 'aarch64-linux-android']
142
+ target : ${{ fromJSON(needs.matrix.outputs.ci_targets) }}
123
143
runs-on : ${{ matrix.os }}
124
144
steps :
125
145
- name : Checkout repository
@@ -131,16 +151,13 @@ jobs:
131
151
run : sudo bash ./.github/workflows/install-deps.sh
132
152
- name : Install Rust target
133
153
if : matrix.target != ''
134
- run : rustup target add ${{ matrix.target }}
154
+ run : |
155
+ rustup target add ${{ matrix.target }}
156
+ echo 'CARGO_BUILD_TARGET=${{ matrix.target }}' >> $GITHUB_ENV
135
157
- name : Restore cargo caches
136
158
uses : Swatinem/rust-cache@v2
137
159
- name : Run check
138
- run : |
139
- if [[ -z "${{ matrix.target }}" ]]; then
140
- cargo check --all-features
141
- else
142
- cargo check --all-features --target ${{ matrix.target }}
143
- fi
160
+ run : cargo check --all-features --verbose
144
161
145
162
check-doc :
146
163
strategy :
0 commit comments