Skip to content

Commit bdedad4

Browse files
authored
Merge branch 'main' into dev/sbo.public
2 parents 0985ffe + a244c03 commit bdedad4

File tree

331 files changed

+7639
-2680
lines changed

Some content is hidden

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

331 files changed

+7639
-2680
lines changed

.github/CI_PERMISSIONS.json

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -485,6 +485,12 @@
485485
"cooldown_interval_minutes": 60,
486486
"reason": "custom override"
487487
},
488+
"netanel-haber": {
489+
"can_tag_run_ci_label": true,
490+
"can_rerun_failed_ci": true,
491+
"cooldown_interval_minutes": 0,
492+
"reason": "custom override"
493+
},
488494
"nvcastet": {
489495
"can_tag_run_ci_label": true,
490496
"can_rerun_failed_ci": true,

.github/labeler.yml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,13 @@ amd:
6666
- '**/*amd*'
6767
- '**/*rocm*'
6868

69+
# NPU specific
70+
npu:
71+
- changed-files:
72+
- any-glob-to-any-file:
73+
- '**/*npu*'
74+
- '**/*ascend*'
75+
6976
# DeepSeek specific
7077
deepseek:
7178
- changed-files:

.github/workflows/bot-bump-kernel-version-to-sglang.yml

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,9 @@ permissions:
1010
jobs:
1111
bump-kernel-version-to-sglang:
1212
runs-on: ubuntu-latest
13+
outputs:
14+
branch_name: ${{ steps.set_output.outputs.branch_name }}
15+
needs_sync: ${{ steps.check_sync.outputs.needs_sync }}
1316
steps:
1417
- name: Checkout code
1518
uses: actions/checkout@v4
@@ -32,6 +35,7 @@ jobs:
3235
3336
- name: Configure Git and branch
3437
if: steps.check_sync.outputs.needs_sync == 'true'
38+
id: set_output
3539
run: |
3640
git config user.name "sglang-bot"
3741
git config user.email "[email protected]"
@@ -41,6 +45,7 @@ jobs:
4145
git checkout -b "$BRANCH_NAME"
4246
echo "BRANCH_NAME=$BRANCH_NAME" >> $GITHUB_ENV
4347
echo "KERNEL_VERSION=$KERNEL_VERSION" >> $GITHUB_ENV
48+
echo "branch_name=$BRANCH_NAME" >> $GITHUB_OUTPUT
4449
4550
- name: Run kernel version bump script
4651
if: steps.check_sync.outputs.needs_sync == 'true'
@@ -53,3 +58,11 @@ jobs:
5358
GH_TOKEN: ${{ secrets.GH_PAT_FOR_PULL_REQUEST }}
5459
run: |
5560
bash scripts/release/commit_and_pr_kernel_to_sglang.sh "$KERNEL_VERSION" "$BRANCH_NAME"
61+
62+
run-nightly-tests:
63+
needs: bump-kernel-version-to-sglang
64+
if: needs.bump-kernel-version-to-sglang.outputs.needs_sync == 'true'
65+
uses: ./.github/workflows/nightly-test.yml
66+
with:
67+
ref: ${{ needs.bump-kernel-version-to-sglang.outputs.branch_name }}
68+
secrets: inherit

.github/workflows/bot-bump-sglang-version.yml

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@ permissions:
1515
jobs:
1616
bump-sglang-version:
1717
runs-on: ubuntu-latest
18+
outputs:
19+
branch_name: ${{ steps.set_output.outputs.branch_name }}
1820
steps:
1921
- name: Checkout code
2022
uses: actions/checkout@v4
@@ -31,13 +33,15 @@ jobs:
3133
pip install tomli
3234
3335
- name: Configure Git and branch
36+
id: set_output
3437
run: |
3538
git config user.name "sglang-bot"
3639
git config user.email "[email protected]"
3740
RANDOM_SUFFIX=$(echo $RANDOM | md5sum | head -c 4)
3841
BRANCH_NAME="bot/bump-sglang-version-${{ github.event.inputs.new_version }}-${RANDOM_SUFFIX}"
3942
git checkout -b "$BRANCH_NAME"
4043
echo "BRANCH_NAME=$BRANCH_NAME" >> $GITHUB_ENV
44+
echo "branch_name=$BRANCH_NAME" >> $GITHUB_OUTPUT
4145
4246
- name: Run SGLang version bump script
4347
run: |
@@ -48,3 +52,10 @@ jobs:
4852
GH_TOKEN: ${{ secrets.GH_PAT_FOR_PULL_REQUEST }}
4953
run: |
5054
bash scripts/release/commit_and_pr.sh "SGLang" "${{ github.event.inputs.new_version }}" "$BRANCH_NAME"
55+
56+
run-nightly-tests:
57+
needs: bump-sglang-version
58+
uses: ./.github/workflows/nightly-test.yml
59+
with:
60+
ref: ${{ needs.bump-sglang-version.outputs.branch_name }}
61+
secrets: inherit

.github/workflows/ci-monitor.yml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,15 @@ jobs:
4646
cd scripts/ci_monitor
4747
python ci_analyzer.py --token $GITHUB_TOKEN --limit ${{ inputs.limit || '1000' }} --output ci_analysis_$(date +%Y%m%d_%H%M%S).json
4848
49+
- name: Run Nightly Test Analysis
50+
env:
51+
GITHUB_TOKEN: ${{ secrets.GH_PAT_FOR_NIGHTLY_CI_DATA }}
52+
PYTHONUNBUFFERED: 1
53+
PYTHONIOENCODING: utf-8
54+
run: |
55+
cd scripts/ci_monitor
56+
python ci_analyzer.py --token $GITHUB_TOKEN --mode nightly --days 2 --output nightly_analysis_$(date +%Y%m%d_%H%M%S).json
57+
4958
- name: Run Performance Analysis
5059
env:
5160
GITHUB_TOKEN: ${{ secrets.GH_PAT_FOR_NIGHTLY_CI_DATA }}
@@ -61,6 +70,7 @@ jobs:
6170
name: ci-analysis-results-${{ github.run_number }}
6271
path: |
6372
scripts/ci_monitor/ci_analysis_*.json
73+
scripts/ci_monitor/nightly_analysis_*.json
6474
scripts/ci_monitor/performance_tables_*
6575
retention-days: 30
6676

.github/workflows/nightly-test-nvidia.yml

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,8 @@ jobs:
3030
- name: Run test
3131
timeout-minutes: 60
3232
run: |
33-
cd test/srt
34-
python3 run_suite.py --suite nightly-1-gpu --continue-on-error
33+
cd test
34+
python3 run_suite_nightly.py --suite nightly-1-gpu --continue-on-error
3535
3636
# General tests - 4 GPU H100
3737
nightly-test-general-4-gpu-h100:
@@ -48,8 +48,8 @@ jobs:
4848
- name: Run test
4949
timeout-minutes: 30
5050
run: |
51-
cd test/srt
52-
python3 run_suite.py --suite nightly-4-gpu --continue-on-error
51+
cd test
52+
python3 run_suite_nightly.py --suite nightly-4-gpu --continue-on-error
5353
5454
# General tests - 8 GPU H200
5555
nightly-test-general-8-gpu-h200:
@@ -70,8 +70,8 @@ jobs:
7070
env:
7171
GPU_CONFIG: "8-gpu-h200"
7272
run: |
73-
cd test/srt
74-
python3 run_suite.py --suite nightly-8-gpu-h200 --continue-on-error
73+
cd test
74+
python3 run_suite_nightly.py --suite nightly-8-gpu-h200 --continue-on-error
7575
7676
# General tests - 8 GPU H20
7777
nightly-test-general-8-gpu-h20:
@@ -92,8 +92,8 @@ jobs:
9292
env:
9393
GPU_CONFIG: "8-gpu-h20"
9494
run: |
95-
cd test/srt
96-
python3 run_suite.py --suite nightly-8-gpu-h20 --continue-on-error
95+
cd test
96+
python3 run_suite_nightly.py --suite nightly-8-gpu-h20 --continue-on-error
9797
9898
# Text model accuracy tests
9999
nightly-test-text-accuracy-2-gpu-runner:
@@ -110,7 +110,7 @@ jobs:
110110
- name: Run eval test for text models
111111
timeout-minutes: 120
112112
run: |
113-
cd test/srt
113+
cd test
114114
python3 nightly/test_text_models_gsm8k_eval.py
115115
116116
# Text model performance tests
@@ -132,7 +132,7 @@ jobs:
132132
PERFETTO_RELAY_URL: ${{ vars.PERFETTO_RELAY_URL }}
133133
GPU_CONFIG: "2-gpu-runner"
134134
run: |
135-
cd test/srt
135+
cd test
136136
rm -rf performance_profiles_text_models/
137137
python3 nightly/test_text_models_perf.py
138138
@@ -159,7 +159,7 @@ jobs:
159159
- name: Run eval test for VLM models (fixed MMMU-100)
160160
timeout-minutes: 240
161161
run: |
162-
cd test/srt
162+
cd test
163163
python3 nightly/test_vlms_mmmu_eval.py
164164
165165
# VLM performance tests
@@ -181,7 +181,7 @@ jobs:
181181
PERFETTO_RELAY_URL: ${{ vars.PERFETTO_RELAY_URL }}
182182
GPU_CONFIG: "2-gpu-runner"
183183
run: |
184-
cd test/srt
184+
cd test
185185
rm -rf performance_profiles_vlms/
186186
python3 nightly/test_vlms_perf.py
187187
@@ -208,8 +208,8 @@ jobs:
208208
- name: Run test
209209
timeout-minutes: 60
210210
run: |
211-
cd test/srt
212-
python3 run_suite.py --suite nightly-4-gpu-b200 --continue-on-error
211+
cd test
212+
python3 run_suite_nightly.py --suite nightly-4-gpu-b200 --continue-on-error
213213
214214
# B200 Performance tests - 8 GPU
215215
nightly-test-perf-8-gpu-b200:
@@ -233,7 +233,7 @@ jobs:
233233
GPU_CONFIG: "8-gpu-b200"
234234
run: |
235235
rm -rf test/srt/performance_profiles_deepseek_v31/
236-
cd test/srt
236+
cd test
237237
IS_BLACKWELL=1 python3 nightly/test_deepseek_v31_perf.py
238238
239239
- name: Publish DeepSeek v3.1 traces to storage repo
@@ -252,7 +252,7 @@ jobs:
252252
GPU_CONFIG: "8-gpu-b200"
253253
run: |
254254
rm -rf test/srt/performance_profiles_deepseek_v32/
255-
cd test/srt
255+
cd test
256256
IS_BLACKWELL=1 python3 nightly/test_deepseek_v32_perf.py
257257
258258
- name: Publish DeepSeek v3.2 traces to storage repo

.github/workflows/nightly-test.yml

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,13 @@ on:
99
paths:
1010
- "python/sglang/version.py"
1111
workflow_dispatch:
12+
workflow_call:
13+
inputs:
14+
ref:
15+
description: 'Git ref (branch, tag, or SHA) to test. If not provided, uses the default branch.'
16+
required: false
17+
type: string
18+
default: ''
1219

1320
concurrency:
1421
group: nightly-test-${{ github.ref }}
@@ -21,6 +28,8 @@ jobs:
2128
steps:
2229
- name: Checkout code
2330
uses: actions/checkout@v4
31+
with:
32+
ref: ${{ inputs.ref || github.ref }}
2433

2534
- name: Install dependencies
2635
run: |
@@ -38,6 +47,8 @@ jobs:
3847
steps:
3948
- name: Checkout code
4049
uses: actions/checkout@v4
50+
with:
51+
ref: ${{ inputs.ref || github.ref }}
4152

4253
- name: Install dependencies
4354
run: |
@@ -67,6 +78,8 @@ jobs:
6778
steps:
6879
- name: Checkout code
6980
uses: actions/checkout@v4
81+
with:
82+
ref: ${{ inputs.ref || github.ref }}
7083

7184
- name: Install dependencies
7285
run: |
@@ -84,6 +97,8 @@ jobs:
8497
steps:
8598
- name: Checkout code
8699
uses: actions/checkout@v4
100+
with:
101+
ref: ${{ inputs.ref || github.ref }}
87102

88103
- name: Install dependencies
89104
run: |
@@ -116,6 +131,8 @@ jobs:
116131
steps:
117132
- name: Checkout code
118133
uses: actions/checkout@v4
134+
with:
135+
ref: ${{ inputs.ref || github.ref }}
119136

120137
- name: Install dependencies
121138
run: |
@@ -133,6 +150,8 @@ jobs:
133150
steps:
134151
- name: Checkout code
135152
uses: actions/checkout@v4
153+
with:
154+
ref: ${{ inputs.ref || github.ref }}
136155

137156
- name: Install dependencies
138157
run: |
@@ -152,6 +171,8 @@ jobs:
152171
steps:
153172
- name: Checkout code
154173
uses: actions/checkout@v4
174+
with:
175+
ref: ${{ inputs.ref || github.ref }}
155176

156177
- name: Install dependencies
157178
run: |
@@ -171,6 +192,8 @@ jobs:
171192
steps:
172193
- name: Checkout code
173194
uses: actions/checkout@v4
195+
with:
196+
ref: ${{ inputs.ref || github.ref }}
174197

175198
- name: Install dependencies
176199
run: |
@@ -192,6 +215,8 @@ jobs:
192215
steps:
193216
- name: Checkout code
194217
uses: actions/checkout@v4
218+
with:
219+
ref: ${{ inputs.ref || github.ref }}
195220

196221
- name: Install dependencies
197222
run: |

.github/workflows/pr-gate.yml

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,10 @@ on:
55
description: "Whether the PR must have the run-ci label"
66
type: boolean
77
default: true
8-
rate-limit-hours:
9-
description: "Rate limit window size in hours; 0 disables rate limiting"
8+
cool-down-minutes:
9+
description: "Cooldown period in minutes for low-permission users; 0 disables rate limiting"
1010
type: number
11-
default: 2
11+
default: 120
1212

1313
jobs:
1414
pr-gate:
@@ -41,7 +41,7 @@ jobs:
4141
echo "PR Draft: ${{ steps.pr.outputs.draft }}"
4242
echo "PR User: ${{ steps.pr.outputs.user }}"
4343
echo "Require run-ci: ${{ inputs.require-run-ci }}"
44-
echo "Rate limit hours: ${{ inputs.rate-limit-hours }}"
44+
echo "Cool down minutes: ${{ inputs.cool-down-minutes }}"
4545
echo "==================="
4646
4747
- name: Block draft PR
@@ -60,12 +60,12 @@ jobs:
6060
fi
6161
6262
- name: Enforce rate limit for low-permission actors (optional)
63-
if: github.event_name == 'pull_request' && inputs.rate-limit-hours > 0
63+
if: github.event_name == 'pull_request' && inputs.cool-down-minutes > 0
6464
uses: actions/github-script@v7
6565
with:
6666
github-token: ${{ secrets.GITHUB_TOKEN }}
6767
script: |
68-
const DEFAULT_HOURS = Number("${{ inputs.rate-limit-hours }}");
68+
const DEFAULT_MINUTES = Number("${{ inputs.cool-down-minutes }}");
6969
const owner = context.repo.owner;
7070
const repo = context.repo.repo;
7171
const eventName = context.eventName;
@@ -96,7 +96,7 @@ jobs:
9696
return;
9797
}
9898
99-
let effectiveCooldownMinutes = DEFAULT_HOURS * 60;
99+
let effectiveCooldownMinutes = DEFAULT_MINUTES;
100100
let perUserCooldownMinutes = null;
101101
102102
try {

0 commit comments

Comments
 (0)