Skip to content

Commit 1b55af3

Browse files
committed
Sync upstream llm-d/llm-d-router 1fa3803
2 parents b750ef4 + 1fa3803 commit 1b55af3

160 files changed

Lines changed: 2464 additions & 1369 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/ISSUE_TEMPLATE/new-release.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,8 @@ This document defines the process for releasing llm-d-router.
7070
A release branch should already exist. In this case, check out the existing branch:
7171
7272
```shell
73-
git checkout release-${BRANCH_VERSION} ${REMOTE}/release-${BRANCH_VERSION}
73+
git fetch ${REMOTE}
74+
git reset --hard ${REMOTE}/release-${BRANCH_VERSION}
7475
```
7576
7677
1. By default, `LATENCY_PREDICTOR_TAG` in the `Makefile` resolves from the router release tag (via `BUILD_REF`). If the latency predictor tag does **not** align with the router version, update the default value of `LATENCY_PREDICTOR_TAG` in the `Makefile` to match your exported `${LATENCY_PREDICTOR_TAG}`.

.github/workflows/check-typos.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ jobs:
1717

1818
steps:
1919
- name: Checkout code
20-
uses: actions/checkout@v6
20+
uses: actions/checkout@v7
2121

2222
- name: Check typos
2323
uses: crate-ci/typos@v1.47.2

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ jobs:
3030
runs-on: ubuntu-latest
3131
steps:
3232
- name: Checkout source
33-
uses: actions/checkout@v6
33+
uses: actions/checkout@v7
3434

3535
- name: Build AMD64 EPP image (no push)
3636
uses: ./.github/actions/docker-build-and-push
@@ -65,7 +65,7 @@ jobs:
6565
runs-on: ubuntu-latest
6666
steps:
6767
- name: Checkout source
68-
uses: actions/checkout@v6
68+
uses: actions/checkout@v7
6969

7070
- name: Build sidecar AMD64 image (no push)
7171
uses: ./.github/actions/docker-build-and-push
@@ -99,7 +99,7 @@ jobs:
9999
runs-on: ubuntu-latest
100100
steps:
101101
- name: Checkout Repo
102-
uses: actions/checkout@v6
102+
uses: actions/checkout@v7
103103

104104
- name: Log in to GHCR
105105
uses: docker/login-action@v4

.github/workflows/ci-dependency-review.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ jobs:
1313
runs-on: ubuntu-latest
1414
steps:
1515
- name: Checkout source
16-
uses: actions/checkout@v6
16+
uses: actions/checkout@v7
1717
- name: Dependency review
1818
uses: actions/dependency-review-action@v5
1919
with:

.github/workflows/ci-lint.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ jobs:
3434
src: ${{ steps.filter.outputs.src }}
3535
steps:
3636
- name: Checkout source
37-
uses: actions/checkout@v6
37+
uses: actions/checkout@v7
3838
- uses: dorny/paths-filter@v4
3939
id: filter
4040
with:
@@ -59,7 +59,7 @@ jobs:
5959
timeout-minutes: 30
6060
steps:
6161
- name: Checkout source
62-
uses: actions/checkout@v6
62+
uses: actions/checkout@v7
6363

6464
- name: Set up Go
6565
uses: actions/setup-go@v6

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

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ jobs:
2525
helm: ${{ steps.filter.outputs.helm }}
2626
steps:
2727
- name: Checkout source
28-
uses: actions/checkout@v6
28+
uses: actions/checkout@v7
2929
- uses: dorny/paths-filter@v4
3030
id: filter
3131
with:
@@ -53,7 +53,7 @@ jobs:
5353
runs-on: ubuntu-latest
5454
steps:
5555
- name: Checkout source
56-
uses: actions/checkout@v6
56+
uses: actions/checkout@v7
5757

5858
- name: Set up Go
5959
uses: actions/setup-go@v6
@@ -70,7 +70,7 @@ jobs:
7070
timeout-minutes: 60
7171
steps:
7272
- name: Checkout source
73-
uses: actions/checkout@v6
73+
uses: actions/checkout@v7
7474

7575
- name: Create Go cache dirs
7676
id: go-cache
@@ -228,7 +228,7 @@ jobs:
228228
steps:
229229
- name: Checkout source
230230
if: ${{ matrix.image.source == 'build' }}
231-
uses: actions/checkout@v6
231+
uses: actions/checkout@v7
232232

233233
- name: Build ${{ matrix.image.name }} image
234234
if: ${{ matrix.image.source == 'build' }}
@@ -278,7 +278,7 @@ jobs:
278278
steps:
279279
- name: Checkout source
280280
if: ${{ matrix.image.source == 'build' }}
281-
uses: actions/checkout@v6
281+
uses: actions/checkout@v7
282282

283283
- name: Build ${{ matrix.image.name }} image
284284
if: ${{ matrix.image.source == 'build' }}
@@ -324,7 +324,7 @@ jobs:
324324
name: e2e-gaie (${{ matrix.suite.name }})
325325
steps:
326326
- name: Checkout source
327-
uses: actions/checkout@v6
327+
uses: actions/checkout@v7
328328

329329
- name: Set up e2e runner
330330
id: e2e-setup
@@ -363,6 +363,7 @@ jobs:
363363
E2E_LABEL_FILTER: ${{ matrix.suite.label-filter }}
364364
PULL_SIDECAR_IMAGE: "false"
365365
PULL_VLLM_RENDER_IMAGE: "false"
366+
HF_TOKEN: ${{ secrets.HF_TOKEN }}
366367
run: make test-e2e-gaie-run
367368

368369
e2e-router:
@@ -398,7 +399,7 @@ jobs:
398399
name: e2e-router (${{ matrix.suite.name }})
399400
steps:
400401
- name: Checkout source
401-
uses: actions/checkout@v6
402+
uses: actions/checkout@v7
402403

403404
- name: Set up e2e runner
404405
id: e2e-setup
@@ -450,4 +451,5 @@ jobs:
450451
E2E_LABEL_FILTER: ${{ matrix.suite.label-filter }}
451452
LOAD_VLLM_RENDER_IMAGE: ${{ matrix.suite.needs-renderer }}
452453
PULL_VLLM_RENDER_IMAGE: "false"
454+
HF_TOKEN: ${{ secrets.HF_TOKEN }}
453455
run: make test-e2e-router-run

.github/workflows/ci-release.yaml

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,3 +51,43 @@ jobs:
5151
tag: ${{ needs.set-params.outputs.tag }}
5252
prerelease: ${{ fromJSON(needs.set-params.outputs.prerelease) }}
5353
chart-suffix: ""
54+
55+
upload-artifacts:
56+
needs: set-params
57+
runs-on: ubuntu-latest
58+
permissions:
59+
contents: write
60+
steps:
61+
- name: Checkout source
62+
uses: actions/checkout@v7
63+
64+
- name: Set up Go
65+
uses: actions/setup-go@v6
66+
with:
67+
go-version-file: go.mod
68+
69+
- name: Setup Kubectl
70+
uses: azure/setup-kubectl@v5
71+
with:
72+
version: 'latest'
73+
74+
- name: Build Artifacts
75+
run: |
76+
make artifacts BUNDLE_VERSION=${{ needs.set-params.outputs.tag }}
77+
78+
- name: Upload Release Assets
79+
env:
80+
GITHUB_TOKEN: ${{ github.token }}
81+
run: |
82+
files=$(find artifacts -type f -size +0c | tr '\n' ' ')
83+
if [ -z "$files" ]; then
84+
echo "No artifacts to upload."
85+
exit 0
86+
fi
87+
if gh release view "${{ needs.set-params.outputs.tag }}" >/dev/null 2>&1; then
88+
gh release upload "${{ needs.set-params.outputs.tag }}" $files --clobber
89+
else
90+
echo "Release ${{ needs.set-params.outputs.tag }} does not exist. Creating a draft release..."
91+
gh release create "${{ needs.set-params.outputs.tag }}" $files --draft --title "${{ needs.set-params.outputs.tag }}" --notes "Release ${{ needs.set-params.outputs.tag }}"
92+
fi
93+

.github/workflows/md-link-check.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ jobs:
3030

3131
steps:
3232
- name: Checkout code
33-
uses: actions/checkout@v6
33+
uses: actions/checkout@v7
3434

3535
- name: Run lychee link checker
3636
uses: lycheeverse/lychee-action@v2.8.0

.github/workflows/release-notes-assemble.yaml

Lines changed: 25 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ on:
77

88
jobs:
99
assemble:
10+
# RC tags are pre-release; only assemble notes for final releases.
11+
if: ${{ !contains(github.ref_name, '-rc') }}
1012
runs-on: ubuntu-latest
1113
permissions:
1214
contents: read
@@ -31,7 +33,7 @@ jobs:
3133
# Check out the tagged commit (not main HEAD) so a fragment merged
3234
# into main between the tag push and this workflow's run is not
3335
# accidentally rolled into the wrong release.
34-
uses: actions/checkout@v6
36+
uses: actions/checkout@v7
3537
with:
3638
ref: ${{ github.sha }}
3739
token: ${{ steps.app-token.outputs.token }}
@@ -45,6 +47,9 @@ jobs:
4547
run: |
4648
set -euo pipefail
4749
50+
# ── Phase 1: read fragments from the tagged commit ──────────
51+
# The checkout step landed us on the tagged commit so that
52+
# fragments merged into main *after* the tag are excluded.
4853
shopt -s nullglob
4954
fragments=( release-notes.d/unreleased/*.md )
5055
if [[ ${#fragments[@]} -eq 0 ]]; then
@@ -54,15 +59,9 @@ jobs:
5459
5560
tmp=$(mktemp)
5661
for f in "${fragments[@]}"; do
57-
# Extract frontmatter values: strip "key: " prefix, take first match.
58-
# Plain field-split breaks on URLs because they contain colons.
5962
pr=$(sed -n 's/^pr: *//p' "$f" | head -1)
6063
url=$(sed -n 's/^url: *//p' "$f" | head -1)
6164
date=$(sed -n 's/^date: *//p' "$f" | head -1)
62-
# Print everything after the second `---` line verbatim — once
63-
# we're past the closing frontmatter marker, a body line that
64-
# happens to be `---` (Markdown horizontal rule) must be kept,
65-
# not counted as a third delimiter.
6665
note=$(awk 'p {print; next} /^---$/ {if (++c == 2) p = 1}' "$f" | sed '/^[[:space:]]*$/d' | tr '\n' ' ' | sed 's/[[:space:]]*$//')
6766
if [[ -z "$pr" || -z "$url" || -z "$date" || -z "$note" ]]; then
6867
echo "Malformed fragment: $f" >&2
@@ -81,17 +80,30 @@ jobs:
8180
done < "$tmp"
8281
printf '\n' >> "$new_section"
8382
83+
# ── Phase 2: branch from main so the PR contains only
84+
# release-notes changes, not unrelated diffs between
85+
# the tagged commit and main HEAD ─────────────────────
86+
git fetch origin main
87+
BRANCH="release-notes/assemble-${TAG}"
88+
git config user.name "${APP_SLUG}[bot]"
89+
git config user.email "${APP_USER_ID}+${APP_SLUG}[bot]@users.noreply.github.com"
90+
git checkout -b "$BRANCH" origin/main
91+
92+
# ── Phase 3: apply release-notes changes on top of main ─
8493
touch RELEASE-NOTES.md
8594
cat "$new_section" RELEASE-NOTES.md > RELEASE-NOTES.md.new
8695
mv RELEASE-NOTES.md.new RELEASE-NOTES.md
96+
git add RELEASE-NOTES.md
8797
88-
git rm -- release-notes.d/unreleased/*.md
98+
# Remove only the fragments captured from the tagged commit,
99+
# not the current main glob which may include post-tag fragments.
100+
# The -f guard skips fragments already absent from main.
101+
for f in "${fragments[@]}"; do
102+
if [[ -f "$f" ]]; then
103+
git rm -- "$f"
104+
fi
105+
done
89106
90-
BRANCH="release-notes/assemble-${TAG}"
91-
git config user.name "${APP_SLUG}[bot]"
92-
git config user.email "${APP_USER_ID}+${APP_SLUG}[bot]@users.noreply.github.com"
93-
git checkout -b "$BRANCH"
94-
git add RELEASE-NOTES.md
95107
git commit -s -m "docs: assemble release notes for ${TAG}"
96108
# Force-push so a re-run (re-tag, manual workflow re-run) overwrites
97109
# the prior branch rather than failing non-fast-forward.

.github/workflows/release-notes-update.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ jobs:
3030
echo "user-id=$(gh api "/users/${APP_SLUG}[bot]" --jq .id)" >> "$GITHUB_OUTPUT"
3131
3232
- name: Checkout main
33-
uses: actions/checkout@v6
33+
uses: actions/checkout@v7
3434
with:
3535
ref: main
3636
token: ${{ steps.app-token.outputs.token }}

0 commit comments

Comments
 (0)