@@ -200,6 +200,161 @@ jobs:
200200 - name : Build iii-worker for target
201201 run : cargo build -p iii-worker --target ${{ matrix.target }}
202202
203+ # ──────────────────────────────────────────────────────────────
204+ # Worker Test Matrix (cross-platform integration tests)
205+ # ──────────────────────────────────────────────────────────────
206+
207+ worker-test-matrix :
208+ name : Worker Tests - ${{ matrix.os }}
209+ runs-on : ${{ matrix.os }}
210+ strategy :
211+ fail-fast : false
212+ matrix :
213+ include :
214+ - os : ubuntu-latest
215+ - os : macos-latest
216+ steps :
217+ - uses : actions/checkout@v4
218+
219+ - uses : dtolnay/rust-toolchain@stable
220+
221+ - uses : Swatinem/rust-cache@v2
222+ with :
223+ key : worker-test-${{ matrix.os }}
224+
225+ - uses : taiki-e/install-action@cargo-nextest
226+
227+ - name : Install system dependencies (Linux only)
228+ if : matrix.os == 'ubuntu-latest'
229+ run : |
230+ sudo apt-get update
231+ sudo apt-get install -y libcap-ng-dev
232+
233+ - name : Run iii-worker tests
234+ run : cargo nextest run -p iii-worker --profile ci
235+
236+ - uses : actions/upload-artifact@v4
237+ if : always()
238+ with :
239+ name : junit-worker-test-${{ matrix.os }}
240+ path : target/nextest/ci/junit.xml
241+ retention-days : 7
242+
243+ # ──────────────────────────────────────────────────────────────
244+ # Worker Feature-Gated Tests
245+ # ──────────────────────────────────────────────────────────────
246+
247+ worker-test-vm-linux :
248+ name : Worker Tests (VM) - linux
249+ if : github.event_name == 'workflow_dispatch'
250+ runs-on : [self-hosted, linux, kvm]
251+ continue-on-error : true
252+ steps :
253+ - uses : actions/checkout@v4
254+
255+ - uses : dtolnay/rust-toolchain@stable
256+
257+ - uses : Swatinem/rust-cache@v2
258+ with :
259+ key : worker-test-vm-linux
260+
261+ - uses : taiki-e/install-action@cargo-nextest
262+
263+ - name : Install system dependencies
264+ run : |
265+ sudo apt-get update
266+ sudo apt-get install -y libcap-ng-dev
267+
268+ - name : Run VM feature-gated tests
269+ run : cargo nextest run -p iii-worker --features integration-vm --profile ci
270+
271+ - uses : actions/upload-artifact@v4
272+ if : always()
273+ with :
274+ name : junit-worker-test-vm-linux
275+ path : target/nextest/ci/junit.xml
276+ retention-days : 7
277+
278+ worker-test-vm-macos :
279+ name : Worker Tests (VM) - macos
280+ runs-on : macos-latest
281+ continue-on-error : true
282+ steps :
283+ - uses : actions/checkout@v4
284+
285+ - uses : dtolnay/rust-toolchain@stable
286+
287+ - uses : Swatinem/rust-cache@v2
288+ with :
289+ key : worker-test-vm-macos
290+
291+ - uses : taiki-e/install-action@cargo-nextest
292+
293+ - name : Run VM feature-gated tests
294+ run : cargo nextest run -p iii-worker --features integration-vm --profile ci
295+
296+ - uses : actions/upload-artifact@v4
297+ if : always()
298+ with :
299+ name : junit-worker-test-vm-macos
300+ path : target/nextest/ci/junit.xml
301+ retention-days : 7
302+
303+ worker-test-oci-linux :
304+ name : Worker Tests (OCI) - linux
305+ runs-on : ubuntu-latest
306+ continue-on-error : true
307+ steps :
308+ - uses : actions/checkout@v4
309+
310+ - uses : dtolnay/rust-toolchain@stable
311+
312+ - uses : Swatinem/rust-cache@v2
313+ with :
314+ key : worker-test-oci-linux
315+
316+ - uses : taiki-e/install-action@cargo-nextest
317+
318+ - name : Install system dependencies
319+ run : |
320+ sudo apt-get update
321+ sudo apt-get install -y libcap-ng-dev
322+
323+ - name : Run OCI feature-gated tests
324+ run : cargo nextest run -p iii-worker --features integration-oci --profile ci
325+
326+ - uses : actions/upload-artifact@v4
327+ if : always()
328+ with :
329+ name : junit-worker-test-oci-linux
330+ path : target/nextest/ci/junit.xml
331+ retention-days : 7
332+
333+ worker-test-oci-macos :
334+ name : Worker Tests (OCI) - macos
335+ runs-on : macos-latest
336+ continue-on-error : true
337+ steps :
338+ - uses : actions/checkout@v4
339+
340+ - uses : dtolnay/rust-toolchain@stable
341+
342+ - uses : Swatinem/rust-cache@v2
343+ with :
344+ key : worker-test-oci-macos
345+
346+ - uses : taiki-e/install-action@cargo-nextest
347+
348+ - name : Run OCI feature-gated tests
349+ run : cargo nextest run -p iii-worker --features integration-oci --profile ci
350+
351+ - uses : actions/upload-artifact@v4
352+ if : always()
353+ with :
354+ name : junit-worker-test-oci-macos
355+ path : target/nextest/ci/junit.xml
356+ retention-days : 7
357+
203358 # ──────────────────────────────────────────────────────────────
204359 # SDK Node
205360 # ──────────────────────────────────────────────────────────────
0 commit comments