1+ # Matrix jobs (e2e-image-common, e2e-image-router) are each
2+ # followed by a *-status job that aggregates their result, since GitHub
3+ # required status checks cannot reference individual matrix legs.
14name : CI - Test
25
36on :
4245 - .github/actions/docker-build-and-push/action.yml
4346 - .github/actions/e2e-runner-setup/action.yml
4447 - .github/workflows/ci-pr-checks.yaml
48+ - '!Dockerfile.coordinator'
49+ - '!Makefile.coord.mk'
50+ - '!cmd/coordinator/**'
51+ - '!pkg/coordinator/**'
52+ - '!test/coordinator/**'
4553 helm:
4654 - 'config/charts/**'
4755 - 'hack/verify-helm.sh'
5664 uses : actions/checkout@v7
5765
5866 - name : Set up Go
59- uses : actions/setup-go@v6
67+ uses : actions/setup-go@v7
6068 with :
6169 go-version-file : go.mod
6270
@@ -105,6 +113,16 @@ jobs:
105113 GO_BUILD_CACHE_VOL : ${{ steps.go-cache.outputs.build }}
106114 run : make test-unit
107115
116+ # Anti-rot: execute the benchmark bodies once so runtime breakage (panics,
117+ # deadlocks) is caught. `go test` only compiles benchmarks; it never runs
118+ # them without -bench.
119+ - name : Run benchmark smoke
120+ shell : bash
121+ env :
122+ GO_MOD_CACHE_VOL : ${{ steps.go-cache.outputs.mod }}
123+ GO_BUILD_CACHE_VOL : ${{ steps.go-cache.outputs.build }}
124+ run : make bench-smoke
125+
108126 - name : Run hermetic integration tests
109127 shell : bash
110128 env :
@@ -222,7 +240,7 @@ jobs:
222240 archive : llm-d-router-endpoint-picker
223241 - name : simulator
224242 source : pull
225- image : ghcr.io/llm-d/llm-d-inference-sim:v0.9 .2
243+ image : ghcr.io/llm-d/llm-d-inference-sim:v0.10 .2
226244 archive : llm-d-inference-sim
227245 name : e2e-image-common (${{ matrix.image.name }})
228246 steps :
@@ -256,6 +274,19 @@ jobs:
256274 retention-days : 1
257275 compression-level : 0
258276
277+ e2e-image-common-status :
278+ needs : e2e-image-common
279+ if : always()
280+ runs-on : ubuntu-latest
281+ steps :
282+ - name : Check e2e-image-common result
283+ run : |
284+ result="${{ needs.e2e-image-common.result }}"
285+ if [[ "$result" != "success" && "$result" != "skipped" ]]; then
286+ echo "::error::e2e-image-common failed for at least one matrix image"
287+ exit 1
288+ fi
289+
259290 e2e-image-router :
260291 needs : check-changes
261292 if : ${{ needs.check-changes.outputs.src == 'true' }}
@@ -306,6 +337,19 @@ jobs:
306337 retention-days : 1
307338 compression-level : 0
308339
340+ e2e-image-router-status :
341+ needs : e2e-image-router
342+ if : always()
343+ runs-on : ubuntu-latest
344+ steps :
345+ - name : Check e2e-image-router result
346+ run : |
347+ result="${{ needs.e2e-image-router.result }}"
348+ if [[ "$result" != "success" && "$result" != "skipped" ]]; then
349+ echo "::error::e2e-image-router failed for at least one matrix image"
350+ exit 1
351+ fi
352+
309353 e2e-router :
310354 needs :
311355 - check-changes
@@ -314,29 +358,6 @@ jobs:
314358 if : ${{ needs.check-changes.outputs.src == 'true' }}
315359 runs-on : ubuntu-latest
316360 timeout-minutes : 45
317- strategy :
318- fail-fast : false
319- matrix :
320- suite :
321- - name : pd
322- label-filter : " !Disruptive && !Extended && !SharedStorage && !Metrics"
323- needs-renderer : " false"
324- - name : pd-shared-storage-deprecated
325- label-filter : " SharedStorage && DeprecatedPD"
326- needs-renderer : " false"
327- - name : pd-shared-storage-disagg
328- label-filter : " SharedStorage && Disagg"
329- needs-renderer : " false"
330- - name : pd-metrics
331- label-filter : " Metrics"
332- needs-renderer : " false"
333- - name : extended
334- label-filter : " Extended"
335- needs-renderer : " true"
336- - name : disruption
337- label-filter : " Disruptive"
338- needs-renderer : " false"
339- name : e2e-router (${{ matrix.suite.name }})
340361 steps :
341362 - name : Checkout source
342363 uses : actions/checkout@v7
@@ -370,7 +391,6 @@ jobs:
370391 path : ${{ runner.temp }}/e2e-images
371392
372393 - name : Download renderer image
373- if : ${{ matrix.suite.needs-renderer == 'true' }}
374394 uses : actions/download-artifact@v8
375395 with :
376396 name : e2e-image-renderer
@@ -383,13 +403,11 @@ jobs:
383403 docker load --input "$image"
384404 done
385405
386- - name : Run e2e-router (${{ matrix.suite.name }})
406+ - name : Run e2e-router
387407 shell : bash
388408 env :
389409 GO_MOD_CACHE_VOL : ${{ steps.e2e-setup.outputs.go-mod-cache }}
390410 GO_BUILD_CACHE_VOL : ${{ steps.e2e-setup.outputs.go-build-cache }}
391- E2E_LABEL_FILTER : ${{ matrix.suite.label-filter }}
392- LOAD_VLLM_RENDER_IMAGE : ${{ matrix.suite.needs-renderer }}
393411 PULL_VLLM_RENDER_IMAGE : " false"
394412 HF_TOKEN : ${{ secrets.HF_TOKEN }}
395413 run : make test-e2e-run
0 commit comments