7676 - target : i686-unknown-linux-gnu
7777 docker : true
7878 os : ubuntu-24.04
79+ - target : i686-unknown-linux-gnu
80+ docker : true
81+ os : ubuntu-24.04
82+ artifact-tag : offset-bits64
83+ env :
84+ RUST_LIBC_UNSTABLE_GNU_FILE_OFFSET_BITS : 64
7985 - target : x86_64-unknown-linux-gnu
8086 docker : true
8187 os : ubuntu-24.04
@@ -107,6 +113,13 @@ jobs:
107113 with :
108114 key : ${{ matrix.target }}
109115
116+ - name : Add matrix env variables to the environment
117+ if : matrix.env
118+ run : |
119+ echo '${{ toJson(matrix.env) }}' |
120+ jq -r 'to_entries | map("\(.key)=\(.value|tostring)") | .[]' >>$GITHUB_ENV
121+ shell : bash
122+
110123 - name : Run natively
111124 if : " !matrix.docker"
112125 run : ./ci/run.sh ${{ matrix.target }}
@@ -115,11 +128,13 @@ jobs:
115128 run : ./ci/run-docker.sh ${{ matrix.target }}
116129
117130 - name : Create CI artifacts
131+ id : create_artifacts
118132 if : always()
119133 run : ./ci/create-artifacts.py
120134 - uses : actions/upload-artifact@v4
135+ if : always() && steps.create_artifacts.outcome == 'success'
121136 with :
122- name : ${{ env.ARCHIVE_NAME }}-${{ matrix.target }}
137+ name : ${{ env.ARCHIVE_NAME }}-${{ matrix.target }}${{ matrix.artifact-tag && format('-{0}', matrix.artifact-tag) }}
123138 path : ${{ env.ARCHIVE_PATH }}
124139 retention-days : 5
125140
@@ -139,15 +154,11 @@ jobs:
139154 - aarch64-unknown-linux-gnu
140155 - aarch64-unknown-linux-musl
141156 - arm-linux-androideabi
142- - arm-unknown-linux-gnueabihf
143157 - arm-unknown-linux-musleabihf
144158 - i686-linux-android
145159 - i686-unknown-linux-musl
146160 - loongarch64-unknown-linux-gnu
147161 - loongarch64-unknown-linux-musl
148- # FIXME(ppc): SIGILL running tests, see
149- # https://github.com/rust-lang/libc/pull/4254#issuecomment-2636288713
150- # - powerpc-unknown-linux-gnu
151162 - powerpc64-unknown-linux-gnu
152163 - powerpc64le-unknown-linux-gnu
153164 - riscv64gc-unknown-linux-gnu
@@ -162,6 +173,19 @@ jobs:
162173 # FIXME: It seems some items in `src/unix/mod.rs`
163174 # aren't defined on redox actually.
164175 # - x86_64-unknown-redox
176+ include :
177+ - target : arm-unknown-linux-gnueabihf
178+ - target : arm-unknown-linux-gnueabihf
179+ env :
180+ RUST_LIBC_UNSTABLE_GNU_FILE_OFFSET_BITS : 64
181+ artifact-tag : offset-bits64
182+ # FIXME(ppc): SIGILL running tests, see
183+ # https://github.com/rust-lang/libc/pull/4254#issuecomment-2636288713
184+ # - target: powerpc-unknown-linux-gnu
185+ # - target: powerpc-unknown-linux-gnu
186+ # env:
187+ # RUST_LIBC_UNSTABLE_GNU_FILE_OFFSET_BITS: 64
188+ # artifact-tag: offset-bits64
165189 timeout-minutes : 25
166190 env :
167191 TARGET : ${{ matrix.target }}
@@ -173,15 +197,24 @@ jobs:
173197 with :
174198 key : ${{ matrix.target }}
175199
200+ - name : Add matrix env variables to the environment
201+ if : matrix.env
202+ run : |
203+ echo '${{ toJson(matrix.env) }}' |
204+ jq -r 'to_entries | map("\(.key)=\(.value|tostring)") | .[]' >>$GITHUB_ENV
205+ shell : bash
206+
176207 - name : Execute run-docker.sh
177208 run : ./ci/run-docker.sh ${{ matrix.target }}
178209
179210 - name : Create CI artifacts
211+ id : create_artifacts
180212 if : always()
181213 run : ./ci/create-artifacts.py
182214 - uses : actions/upload-artifact@v4
215+ if : always() && steps.create_artifacts.outcome == 'success'
183216 with :
184- name : ${{ env.ARCHIVE_NAME }}-${{ matrix.target }}
217+ name : ${{ env.ARCHIVE_NAME }}-${{ matrix.target }}${{ matrix.artifact-tag && format('-{0}', matrix.artifact-tag) }}
185218 path : ${{ env.ARCHIVE_PATH }}
186219 retention-days : 5
187220
0 commit comments