Skip to content

Commit 57cb8d1

Browse files
authored
Merge branch 'main' into fix-auto-inject-saturation-filter
2 parents b132c0b + f56f3bd commit 57cb8d1

325 files changed

Lines changed: 15275 additions & 25308 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/actions/docker-build-and-push/action.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,10 @@ inputs:
3333
required: false
3434
description: Git commit SHA to embed via COMMIT_SHA build arg
3535
default: ''
36+
additional-tags:
37+
required: false
38+
description: Additional image tags to push
39+
default: ''
3640
runs:
3741
using: "composite"
3842
steps:
@@ -58,6 +62,7 @@ runs:
5862
${{ inputs.registry }}/${{ inputs.image-name }}:${{ inputs.tag }}
5963
${{ inputs.push == 'true' && inputs.prerelease != 'true' && format('{0}/{1}:latest', inputs.registry, inputs.image-name) || '' }}
6064
${{ inputs.commit-sha != '' && format('{0}/{1}:{2}', inputs.registry, inputs.image-name, inputs.commit-sha) || '' }}
65+
${{ inputs.additional-tags }}
6166
build-args: |
6267
LDFLAGS=-s -w
6368
COMMIT_SHA=${{ inputs.commit-sha || 'unknown' }}

.github/actions/helm-build-and-push/action.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ inputs:
1212
required: false
1313
default: ''
1414
epp_image_repository:
15-
description: 'EPP image repository name (e.g. llm-d-router-endpoint-picker or llm-d-router-endpoint-picker-dev)'
15+
description: 'EPP image repository name (e.g. llm-d-router-endpoint-picker)'
1616
required: false
1717
default: 'llm-d-router-endpoint-picker'
1818
runs:

.github/actions/trivy-scan/action.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,11 @@ runs:
2626
output: 'trivy-results.sarif'
2727
severity: ${{ inputs.severity }}
2828
exit-code: '1'
29+
# trivy-action drops the severity filter for SARIF output unless told
30+
# otherwise, which fails the scan on findings outside `severity` (e.g.
31+
# UNKNOWN-severity Go vulndb notes).
32+
limit-severities-for-sarif: 'true'
33+
version: 'v0.72.0'
2934

3035
- name: Upload Trivy SARIF to Security tab
3136
uses: github/codeql-action/upload-sarif@v4.35.4 # v4.35.4 68bde559dea0fdcac2102bfdf6230c5f70eb485e

.github/workflows/ci-build-images.yaml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,14 @@ on:
1919
required: false
2020
type: string
2121
default: ''
22+
epp-additional-tags:
23+
required: false
24+
type: string
25+
default: ''
26+
sidecar-additional-tags:
27+
required: false
28+
type: string
29+
default: ''
2230

2331
permissions:
2432
contents: read
@@ -60,6 +68,7 @@ jobs:
6068
prerelease: ${{ inputs.prerelease }}
6169
commit-sha: ${{ github.sha }}
6270
push: 'true'
71+
additional-tags: ${{ inputs.epp-additional-tags }}
6372

6473
build-sidecar:
6574
runs-on: ubuntu-latest
@@ -93,6 +102,7 @@ jobs:
93102
prerelease: ${{ inputs.prerelease }}
94103
commit-sha: ${{ github.sha }}
95104
push: 'true'
105+
additional-tags: ${{ inputs.sidecar-additional-tags }}
96106

97107
push-helm-charts:
98108
needs: [build-epp, build-sidecar]
Lines changed: 106 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,106 @@
1+
name: CI - Coordinator Test
2+
3+
# Runs coordinator unit tests and e2e tests. Path filter excludes paths not
4+
# exercised by the coordinator.
5+
on:
6+
push:
7+
branches:
8+
- main
9+
- 'release-*'
10+
pull_request:
11+
branches:
12+
- main
13+
14+
permissions:
15+
contents: read
16+
actions: read
17+
18+
concurrency:
19+
group: ${{ github.workflow }}-${{ github.event_name }}-${{ github.event.pull_request.number || github.ref }}
20+
cancel-in-progress: true
21+
22+
jobs:
23+
check-changes:
24+
runs-on: ubuntu-latest
25+
outputs:
26+
src: ${{ steps.filter.outputs.src }}
27+
steps:
28+
- name: Checkout source
29+
uses: actions/checkout@v7
30+
- uses: dorny/paths-filter@v4
31+
id: filter
32+
with:
33+
filters: |
34+
src:
35+
- '**/*.go'
36+
- Dockerfile.*
37+
- Makefile*
38+
- go.mod
39+
- go.sum
40+
- scripts/**
41+
- hack/**
42+
- test/**
43+
- .github/actions/e2e-runner-setup/action.yml
44+
- .github/workflows/ci-coordinator.yaml
45+
- '!Dockerfile.sidecar'
46+
- '!cmd/pd-sidecar/**'
47+
- '!pkg/sidecar/**'
48+
- '!test/sidecar/**'
49+
- '!pkg/generator/**'
50+
- '!test/e2e/**'
51+
- '!test/integration/**'
52+
- '!test/profiling/**'
53+
- '!Makefile'
54+
55+
unit-tests:
56+
needs: check-changes
57+
if: ${{ needs.check-changes.outputs.src == 'true' }}
58+
runs-on: ubuntu-latest
59+
timeout-minutes: 30
60+
steps:
61+
- name: Checkout source
62+
uses: actions/checkout@v7
63+
64+
- name: Create Go cache dirs
65+
id: go-cache
66+
run: |
67+
mkdir -p "$HOME/.cache/llm-d-gomodcache" "$HOME/.cache/llm-d-gobuildcache"
68+
echo "mod=$HOME/.cache/llm-d-gomodcache" >> "$GITHUB_OUTPUT"
69+
echo "build=$HOME/.cache/llm-d-gobuildcache" >> "$GITHUB_OUTPUT"
70+
71+
- name: Cache Go modules and build cache
72+
uses: actions/cache@v6
73+
with:
74+
path: |
75+
${{ steps.go-cache.outputs.mod }}
76+
${{ steps.go-cache.outputs.build }}
77+
key: go-cache-${{ runner.os }}-${{ hashFiles('go.sum') }}
78+
restore-keys: |
79+
go-cache-${{ runner.os }}-
80+
81+
- name: Run coordinator unit tests
82+
shell: bash
83+
env:
84+
GO_MOD_CACHE_VOL: ${{ steps.go-cache.outputs.mod }}
85+
GO_BUILD_CACHE_VOL: ${{ steps.go-cache.outputs.build }}
86+
run: make -f Makefile.coord.mk test-unit
87+
88+
e2e-tests:
89+
needs: check-changes
90+
if: ${{ needs.check-changes.outputs.src == 'true' }}
91+
runs-on: ubuntu-latest
92+
timeout-minutes: 60
93+
steps:
94+
- name: Checkout source
95+
uses: actions/checkout@v7
96+
97+
- name: Set up e2e runner
98+
id: e2e-setup
99+
uses: ./.github/actions/e2e-runner-setup
100+
101+
- name: Run coordinator e2e tests
102+
shell: bash
103+
env:
104+
GO_MOD_CACHE_VOL: ${{ steps.e2e-setup.outputs.go-mod-cache }}
105+
GO_BUILD_CACHE_VOL: ${{ steps.e2e-setup.outputs.go-build-cache }}
106+
run: make -f Makefile.coord.mk test-e2e-coordinator

.github/workflows/ci-dev.yaml

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@ jobs:
1919
outputs:
2020
epp_name: ${{ steps.version.outputs.epp_name }}
2121
sidecar_name: ${{ steps.version.outputs.sidecar_name }}
22+
epp_base_name: ${{ steps.version.outputs.epp_base_name }}
23+
sidecar_base_name: ${{ steps.version.outputs.sidecar_base_name }}
2224
tag: ${{ steps.tag.outputs.tag }}
2325
steps:
2426
- name: Set image names
@@ -27,6 +29,8 @@ jobs:
2729
repo="${GITHUB_REPOSITORY##*/}"
2830
echo "epp_name=${repo}-endpoint-picker-dev" >> "$GITHUB_OUTPUT"
2931
echo "sidecar_name=${repo}-disagg-sidecar-dev" >> "$GITHUB_OUTPUT"
32+
echo "epp_base_name=${repo}-endpoint-picker" >> "$GITHUB_OUTPUT"
33+
echo "sidecar_base_name=${repo}-disagg-sidecar" >> "$GITHUB_OUTPUT"
3034
3135
- name: Set branch name as tag
3236
id: tag
@@ -42,5 +46,7 @@ jobs:
4246
sidecar-image-name: ${{ needs.set-params.outputs.sidecar_name }}
4347
tag: ${{ needs.set-params.outputs.tag }}
4448
prerelease: true
45-
chart-suffix: "-dev"
49+
chart-suffix: ""
50+
epp-additional-tags: ghcr.io/llm-d/${{ needs.set-params.outputs.epp_base_name }}:main
51+
sidecar-additional-tags: ghcr.io/llm-d/${{ needs.set-params.outputs.sidecar_base_name }}:main
4652

.github/workflows/ci-lint.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ jobs:
6262
uses: actions/checkout@v7
6363

6464
- name: Set up Go
65-
uses: actions/setup-go@v6
65+
uses: actions/setup-go@v7
6666
with:
6767
go-version-file: go.mod
6868
cache: true

.github/workflows/ci-pr-checks.yaml

Lines changed: 47 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
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.
14
name: CI - Test
25

36
on:
@@ -42,6 +45,11 @@ jobs:
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'
@@ -56,7 +64,7 @@ jobs:
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

.github/workflows/ci-release.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ jobs:
6262
uses: actions/checkout@v7
6363

6464
- name: Set up Go
65-
uses: actions/setup-go@v6
65+
uses: actions/setup-go@v7
6666
with:
6767
go-version-file: go.mod
6868

0 commit comments

Comments
 (0)