[ci] allow manual label to trigger ci in rust, change ci order (#14016)
This commit is contained in:
24
.github/workflows/pr-test-npu.yml
vendored
24
.github/workflows/pr-test-npu.yml
vendored
@@ -12,16 +12,8 @@ concurrency:
|
||||
cancel-in-progress: true
|
||||
|
||||
jobs:
|
||||
|
||||
# ==================== PR Gate ==================== #
|
||||
pr-gate:
|
||||
uses: ./.github/workflows/pr-gate.yml
|
||||
secrets: inherit
|
||||
# ================================================= #
|
||||
|
||||
# ==================== Check Changes ==================== #
|
||||
check-changes:
|
||||
needs: [pr-gate]
|
||||
runs-on: ubuntu-latest
|
||||
outputs:
|
||||
main_package: ${{ steps.filter.outputs.main_package }}
|
||||
@@ -40,10 +32,16 @@ jobs:
|
||||
- "scripts/ci/npu_ci_install_dependency.sh"
|
||||
- "test/srt/ascend/**"
|
||||
- ".github/workflows/pr-test-npu.yml"
|
||||
# ======================================================= #
|
||||
|
||||
# ==================== PR Gate ==================== #
|
||||
pr-gate:
|
||||
needs: check-changes
|
||||
if: needs.check-changes.outputs.main_package == 'true'
|
||||
uses: ./.github/workflows/pr-gate.yml
|
||||
secrets: inherit
|
||||
|
||||
per-commit-1-npu-a2:
|
||||
needs: [check-changes]
|
||||
needs: [check-changes, pr-gate]
|
||||
if: needs.check-changes.outputs.main_package == 'true'
|
||||
runs-on: linux-arm64-npu-1
|
||||
container:
|
||||
@@ -82,7 +80,7 @@ jobs:
|
||||
python3 run_suite.py --suite per-commit-1-npu-a2
|
||||
|
||||
per-commit-2-npu-a2:
|
||||
needs: [check-changes]
|
||||
needs: [check-changes, pr-gate]
|
||||
if: needs.check-changes.outputs.main_package == 'true'
|
||||
runs-on: linux-arm64-npu-2
|
||||
strategy:
|
||||
@@ -125,7 +123,7 @@ jobs:
|
||||
python3 run_suite.py --suite per-commit-2-npu-a2 --auto-partition-id ${{ matrix.part }} --auto-partition-size 3
|
||||
|
||||
per-commit-4-npu-a2:
|
||||
needs: [check-changes]
|
||||
needs: [check-changes, pr-gate]
|
||||
if: needs.check-changes.outputs.main_package == 'true'
|
||||
runs-on: linux-arm64-npu-4
|
||||
container:
|
||||
@@ -164,7 +162,7 @@ jobs:
|
||||
python3 run_suite.py --suite per-commit-4-npu-a2 --timeout-per-file 3600
|
||||
|
||||
per-commit-16-npu-a3:
|
||||
needs: [check-changes]
|
||||
needs: [check-changes, pr-gate]
|
||||
if: needs.check-changes.outputs.main_package == 'true'
|
||||
runs-on: linux-aarch64-a3-16
|
||||
strategy:
|
||||
|
||||
7
.github/workflows/pr-test-pd-router.yml
vendored
7
.github/workflows/pr-test-pd-router.yml
vendored
@@ -9,6 +9,7 @@ on:
|
||||
- 'sgl-router/**'
|
||||
pull_request:
|
||||
branches: [ main ]
|
||||
types: [opened, synchronize, reopened, labeled]
|
||||
paths:
|
||||
- 'python/sglang/srt/disaggregation/**'
|
||||
- 'scripts/ci/ci_start_disaggregation_servers.sh'
|
||||
@@ -26,7 +27,11 @@ permissions:
|
||||
|
||||
jobs:
|
||||
test-disaggregation:
|
||||
if: github.event_name != 'pull_request' || (contains(github.event.pull_request.labels.*.name, 'run-ci') && contains(github.event.pull_request.labels.*.name, 'router-benchmark'))
|
||||
if: |
|
||||
github.event_name != 'pull_request' ||
|
||||
(github.event.action != 'labeled' && contains(github.event.pull_request.labels.*.name, 'run-ci') && contains(github.event.pull_request.labels.*.name, 'router-benchmark')) ||
|
||||
(github.event.action == 'labeled' && github.event.label.name == 'run-ci' && contains(github.event.pull_request.labels.*.name, 'router-benchmark')) ||
|
||||
(github.event.action == 'labeled' && github.event.label.name == 'router-benchmark' && contains(github.event.pull_request.labels.*.name, 'run-ci'))
|
||||
runs-on: [8-gpu-h200-oracle]
|
||||
timeout-minutes: 45
|
||||
|
||||
|
||||
21
.github/workflows/pr-test-rust.yml
vendored
21
.github/workflows/pr-test-rust.yml
vendored
@@ -7,6 +7,7 @@ on:
|
||||
- "sgl-router/**"
|
||||
pull_request:
|
||||
branches: [ main ]
|
||||
types: [opened, synchronize, reopened, labeled]
|
||||
paths:
|
||||
- "sgl-router/**"
|
||||
workflow_dispatch:
|
||||
@@ -21,7 +22,10 @@ env:
|
||||
|
||||
jobs:
|
||||
maturin-build-test:
|
||||
if: github.event_name != 'pull_request' || contains(github.event.pull_request.labels.*.name, 'run-ci')
|
||||
if: |
|
||||
github.event_name != 'pull_request' ||
|
||||
(github.event.action != 'labeled' && contains(github.event.pull_request.labels.*.name, 'run-ci')) ||
|
||||
(github.event.action == 'labeled' && github.event.label.name == 'run-ci')
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
@@ -71,7 +75,10 @@ jobs:
|
||||
python -c "from sglang_router.sglang_router_rs import Router; print('Rust extension: OK')"
|
||||
python -m sglang_router.launch_router --help > /dev/null && echo "Entry point: OK"
|
||||
router-unit-tests:
|
||||
if: github.event_name != 'pull_request' || contains(github.event.pull_request.labels.*.name, 'run-ci')
|
||||
if: |
|
||||
github.event_name != 'pull_request' ||
|
||||
(github.event.action != 'labeled' && contains(github.event.pull_request.labels.*.name, 'run-ci')) ||
|
||||
(github.event.action == 'labeled' && github.event.label.name == 'run-ci')
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout code
|
||||
@@ -134,7 +141,10 @@ jobs:
|
||||
run: sccache --show-stats
|
||||
|
||||
router-http-tests:
|
||||
if: github.event_name != 'pull_request' || contains(github.event.pull_request.labels.*.name, 'run-ci')
|
||||
if: |
|
||||
github.event_name != 'pull_request' ||
|
||||
(github.event.action != 'labeled' && contains(github.event.pull_request.labels.*.name, 'run-ci')) ||
|
||||
(github.event.action == 'labeled' && github.event.label.name == 'run-ci')
|
||||
runs-on: 4-gpu-a10
|
||||
timeout-minutes: 32
|
||||
steps:
|
||||
@@ -203,7 +213,10 @@ jobs:
|
||||
path: sgl-router/benchmark_**/
|
||||
|
||||
router-grpc-response-api-tests:
|
||||
if: github.event_name != 'pull_request' || contains(github.event.pull_request.labels.*.name, 'run-ci')
|
||||
if: |
|
||||
github.event_name != 'pull_request' ||
|
||||
(github.event.action != 'labeled' && contains(github.event.pull_request.labels.*.name, 'run-ci')) ||
|
||||
(github.event.action == 'labeled' && github.event.label.name == 'run-ci')
|
||||
runs-on: 4-gpu-a10
|
||||
timeout-minutes: 32
|
||||
steps:
|
||||
|
||||
20
.github/workflows/pr-test-xeon.yml
vendored
20
.github/workflows/pr-test-xeon.yml
vendored
@@ -12,13 +12,8 @@ concurrency:
|
||||
cancel-in-progress: false
|
||||
|
||||
jobs:
|
||||
# ==================== PR Gate ==================== #
|
||||
pr-gate:
|
||||
uses: ./.github/workflows/pr-gate.yml
|
||||
secrets: inherit
|
||||
# ================= Check Changes ================= #
|
||||
# ==================== Check Changes ==================== #
|
||||
check-changes:
|
||||
needs: [pr-gate]
|
||||
runs-on: ubuntu-latest
|
||||
outputs:
|
||||
main_package: ${{ steps.filter.outputs.main_package }}
|
||||
@@ -32,16 +27,23 @@ jobs:
|
||||
with:
|
||||
filters: |
|
||||
main_package:
|
||||
- "python/**"
|
||||
- "!python/sglang/multimodal_gen/**"
|
||||
- "python/sglang/!(multimodal_gen)/**"
|
||||
- "python/*.toml"
|
||||
- "scripts/ci/**"
|
||||
- "test/**"
|
||||
- "sgl-kernel/**"
|
||||
- ".github/workflows/pr-test-xeon.yml"
|
||||
- "docker/xeon.Dockerfile"
|
||||
|
||||
# ==================== PR Gate ==================== #
|
||||
pr-gate:
|
||||
needs: check-changes
|
||||
if: needs.check-changes.outputs.main_package == 'true'
|
||||
uses: ./.github/workflows/pr-gate.yml
|
||||
secrets: inherit
|
||||
|
||||
build-test:
|
||||
needs: [check-changes]
|
||||
needs: [check-changes, pr-gate]
|
||||
if: needs.check-changes.outputs.main_package == 'true'
|
||||
runs-on: xeon-gnr
|
||||
env:
|
||||
|
||||
62
.github/workflows/pr-test.yml
vendored
62
.github/workflows/pr-test.yml
vendored
@@ -21,12 +21,8 @@ concurrency:
|
||||
cancel-in-progress: true
|
||||
|
||||
jobs:
|
||||
call-gate:
|
||||
uses: ./.github/workflows/pr-gate.yml
|
||||
secrets: inherit
|
||||
# =============================================== check changes ====================================================
|
||||
check-changes:
|
||||
needs: [call-gate]
|
||||
runs-on: ubuntu-latest
|
||||
outputs:
|
||||
main_package: ${{ steps.filter.outputs.main_package }}
|
||||
@@ -67,10 +63,20 @@ jobs:
|
||||
echo "| multimodal_gen | ${{ steps.filter.outputs.multimodal_gen }} |"
|
||||
} >> $GITHUB_STEP_SUMMARY
|
||||
|
||||
# =============================================== PR Gate ====================================================
|
||||
call-gate:
|
||||
needs: check-changes
|
||||
if: |
|
||||
needs.check-changes.outputs.main_package == 'true' ||
|
||||
needs.check-changes.outputs.sgl_kernel == 'true' ||
|
||||
needs.check-changes.outputs.multimodal_gen == 'true'
|
||||
uses: ./.github/workflows/pr-gate.yml
|
||||
secrets: inherit
|
||||
|
||||
# =============================================== sgl-kernel ====================================================
|
||||
|
||||
sgl-kernel-build-wheels:
|
||||
needs: [check-changes]
|
||||
needs: [check-changes, call-gate]
|
||||
if: needs.check-changes.outputs.sgl_kernel == 'true'
|
||||
runs-on: x64-kernel-build-node
|
||||
strategy:
|
||||
@@ -110,7 +116,7 @@ jobs:
|
||||
path: sgl-kernel/dist/*
|
||||
|
||||
sgl-kernel-build-wheels-arm:
|
||||
needs: [check-changes]
|
||||
needs: [check-changes, call-gate]
|
||||
if: needs.check-changes.outputs.sgl_kernel == 'true'
|
||||
runs-on: arm-kernel-build-node
|
||||
strategy:
|
||||
@@ -151,7 +157,7 @@ jobs:
|
||||
path: sgl-kernel/dist/*
|
||||
|
||||
sgl-kernel-unit-test:
|
||||
needs: [check-changes, sgl-kernel-build-wheels]
|
||||
needs: [check-changes, call-gate, sgl-kernel-build-wheels]
|
||||
if: needs.check-changes.outputs.sgl_kernel == 'true'
|
||||
runs-on: 1-gpu-runner
|
||||
env:
|
||||
@@ -182,7 +188,7 @@ jobs:
|
||||
pytest tests/
|
||||
|
||||
sgl-kernel-mla-test:
|
||||
needs: [check-changes, sgl-kernel-build-wheels]
|
||||
needs: [check-changes, call-gate, sgl-kernel-build-wheels]
|
||||
if: needs.check-changes.outputs.sgl_kernel == 'true'
|
||||
runs-on: 1-gpu-runner
|
||||
env:
|
||||
@@ -213,7 +219,7 @@ jobs:
|
||||
python3 test_mla_deepseek_v3.py
|
||||
|
||||
sgl-kernel-benchmark-test:
|
||||
needs: [check-changes, sgl-kernel-build-wheels]
|
||||
needs: [check-changes, call-gate, sgl-kernel-build-wheels]
|
||||
if: needs.check-changes.outputs.sgl_kernel == 'true'
|
||||
runs-on: 1-gpu-runner
|
||||
env:
|
||||
@@ -321,7 +327,7 @@ jobs:
|
||||
# =============================================== primary ====================================================
|
||||
|
||||
stage-a-test-1:
|
||||
needs: [check-changes, sgl-kernel-build-wheels]
|
||||
needs: [check-changes, call-gate, sgl-kernel-build-wheels]
|
||||
if: always() && !failure() && !cancelled() &&
|
||||
((needs.check-changes.outputs.main_package == 'true') || (needs.check-changes.outputs.sgl_kernel == 'true'))
|
||||
runs-on: 1-gpu-runner
|
||||
@@ -353,7 +359,7 @@ jobs:
|
||||
|
||||
|
||||
multimodal-gen-test-1-gpu:
|
||||
needs: [check-changes, sgl-kernel-build-wheels]
|
||||
needs: [check-changes, call-gate, sgl-kernel-build-wheels]
|
||||
if: (always() && !failure() && !cancelled()) && needs.check-changes.outputs.multimodal_gen == 'true'
|
||||
runs-on: 1-gpu-runner
|
||||
strategy:
|
||||
@@ -391,7 +397,7 @@ jobs:
|
||||
|
||||
|
||||
multimodal-gen-test-2-gpu:
|
||||
needs: [check-changes, sgl-kernel-build-wheels]
|
||||
needs: [check-changes, call-gate, sgl-kernel-build-wheels]
|
||||
if: (always() && !failure() && !cancelled()) && needs.check-changes.outputs.multimodal_gen == 'true'
|
||||
runs-on: 2-gpu-runner
|
||||
strategy:
|
||||
@@ -429,7 +435,7 @@ jobs:
|
||||
--total-partitions 2
|
||||
|
||||
quantization-test:
|
||||
needs: [check-changes, stage-a-test-1]
|
||||
needs: [check-changes, call-gate, stage-a-test-1]
|
||||
if: always() && !failure() && !cancelled() &&
|
||||
((needs.check-changes.outputs.main_package == 'true') || (needs.check-changes.outputs.sgl_kernel == 'true'))
|
||||
runs-on: 1-gpu-runner
|
||||
@@ -456,7 +462,7 @@ jobs:
|
||||
python3 run_suite.py --suite quantization_test
|
||||
|
||||
unit-test-backend-1-gpu:
|
||||
needs: [check-changes, stage-a-test-1]
|
||||
needs: [check-changes, call-gate, stage-a-test-1]
|
||||
if: always() && !failure() && !cancelled() &&
|
||||
((needs.check-changes.outputs.main_package == 'true') || (needs.check-changes.outputs.sgl_kernel == 'true'))
|
||||
runs-on: 1-gpu-runner
|
||||
@@ -490,7 +496,7 @@ jobs:
|
||||
python3 run_suite.py --suite per-commit-1-gpu --auto-partition-id ${{ matrix.part }} --auto-partition-size 15
|
||||
|
||||
unit-test-backend-2-gpu:
|
||||
needs: [check-changes, unit-test-backend-1-gpu]
|
||||
needs: [check-changes, call-gate, unit-test-backend-1-gpu]
|
||||
if: always() && !failure() && !cancelled() &&
|
||||
((needs.check-changes.outputs.main_package == 'true') || (needs.check-changes.outputs.sgl_kernel == 'true'))
|
||||
runs-on: 2-gpu-runner
|
||||
@@ -523,7 +529,7 @@ jobs:
|
||||
python3 run_suite.py --suite per-commit-2-gpu --auto-partition-id ${{ matrix.part }} --auto-partition-size 2
|
||||
|
||||
unit-test-backend-4-gpu:
|
||||
needs: [check-changes, unit-test-backend-2-gpu]
|
||||
needs: [check-changes, call-gate, unit-test-backend-2-gpu]
|
||||
if: always() && !failure() && !cancelled() &&
|
||||
((needs.check-changes.outputs.main_package == 'true') || (needs.check-changes.outputs.sgl_kernel == 'true'))
|
||||
runs-on: 4-gpu-h100
|
||||
@@ -556,7 +562,7 @@ jobs:
|
||||
python3 run_suite.py --suite per-commit-4-gpu --auto-partition-id ${{ matrix.part }} --auto-partition-size 2
|
||||
|
||||
unit-test-backend-8-gpu-h200:
|
||||
needs: [check-changes, unit-test-backend-2-gpu]
|
||||
needs: [check-changes, call-gate, unit-test-backend-2-gpu]
|
||||
if: always() && !failure() && !cancelled() &&
|
||||
((needs.check-changes.outputs.main_package == 'true') || (needs.check-changes.outputs.sgl_kernel == 'true'))
|
||||
runs-on: 8-gpu-h200
|
||||
@@ -589,7 +595,7 @@ jobs:
|
||||
python3 run_suite.py --suite per-commit-8-gpu-h200 --auto-partition-id ${{ matrix.part }} --auto-partition-size 3
|
||||
|
||||
unit-test-backend-8-gpu-h20:
|
||||
needs: [check-changes, unit-test-backend-2-gpu]
|
||||
needs: [check-changes, call-gate, unit-test-backend-2-gpu]
|
||||
if: always() && !failure() && !cancelled() &&
|
||||
((needs.check-changes.outputs.main_package == 'true') || (needs.check-changes.outputs.sgl_kernel == 'true'))
|
||||
runs-on: 8-gpu-h20
|
||||
@@ -623,7 +629,7 @@ jobs:
|
||||
python3 run_suite.py --suite per-commit-8-gpu-h20 --auto-partition-id ${{ matrix.part }} --auto-partition-size 2
|
||||
|
||||
performance-test-1-gpu-part-1:
|
||||
needs: [check-changes, stage-a-test-1]
|
||||
needs: [check-changes, call-gate, stage-a-test-1]
|
||||
if: always() && !failure() && !cancelled() &&
|
||||
((needs.check-changes.outputs.main_package == 'true') || (needs.check-changes.outputs.sgl_kernel == 'true'))
|
||||
runs-on: 1-gpu-runner
|
||||
@@ -684,7 +690,7 @@ jobs:
|
||||
python3 -m unittest test_bench_serving.TestBenchServing.test_lora_online_latency_with_concurrent_adapter_updates
|
||||
|
||||
performance-test-1-gpu-part-2:
|
||||
needs: [check-changes, stage-a-test-1]
|
||||
needs: [check-changes, call-gate, stage-a-test-1]
|
||||
if: always() && !failure() && !cancelled() &&
|
||||
((needs.check-changes.outputs.main_package == 'true') || (needs.check-changes.outputs.sgl_kernel == 'true'))
|
||||
runs-on: 1-gpu-runner
|
||||
@@ -737,7 +743,7 @@ jobs:
|
||||
python3 -m unittest test_bench_serving.TestBenchServing.test_vlm_online_latency
|
||||
|
||||
performance-test-1-gpu-part-3:
|
||||
needs: [check-changes, stage-a-test-1]
|
||||
needs: [check-changes, call-gate, stage-a-test-1]
|
||||
if: always() && !failure() && !cancelled() &&
|
||||
((needs.check-changes.outputs.main_package == 'true') || (needs.check-changes.outputs.sgl_kernel == 'true'))
|
||||
runs-on: 1-gpu-runner
|
||||
@@ -784,7 +790,7 @@ jobs:
|
||||
python3 -m unittest test_bench_serving.TestBenchServing.test_embeddings_api_batch_scaling
|
||||
|
||||
performance-test-2-gpu:
|
||||
needs: [check-changes, unit-test-backend-2-gpu]
|
||||
needs: [check-changes, call-gate, unit-test-backend-2-gpu]
|
||||
if: always() && !failure() && !cancelled() &&
|
||||
((needs.check-changes.outputs.main_package == 'true') || (needs.check-changes.outputs.sgl_kernel == 'true'))
|
||||
runs-on: 2-gpu-runner
|
||||
@@ -843,7 +849,7 @@ jobs:
|
||||
python3 -m unittest test_bench_serving.TestBenchServing.test_pp_long_context_prefill
|
||||
|
||||
accuracy-test-1-gpu:
|
||||
needs: [check-changes, stage-a-test-1]
|
||||
needs: [check-changes, call-gate, stage-a-test-1]
|
||||
if: always() && !failure() && !cancelled() &&
|
||||
((needs.check-changes.outputs.main_package == 'true') || (needs.check-changes.outputs.sgl_kernel == 'true'))
|
||||
runs-on: 1-gpu-runner
|
||||
@@ -875,7 +881,7 @@ jobs:
|
||||
python3 test_eval_accuracy_large.py
|
||||
|
||||
accuracy-test-2-gpu:
|
||||
needs: [check-changes, accuracy-test-1-gpu]
|
||||
needs: [check-changes, call-gate, accuracy-test-1-gpu]
|
||||
if: always() && !failure() && !cancelled() &&
|
||||
((needs.check-changes.outputs.main_package == 'true') || (needs.check-changes.outputs.sgl_kernel == 'true'))
|
||||
runs-on: 2-gpu-runner
|
||||
@@ -907,7 +913,7 @@ jobs:
|
||||
python3 test_moe_eval_accuracy_large.py
|
||||
|
||||
unit-test-deepep-4-gpu:
|
||||
needs: [check-changes, unit-test-backend-2-gpu]
|
||||
needs: [check-changes, call-gate, unit-test-backend-2-gpu]
|
||||
if: always() && !failure() && !cancelled() &&
|
||||
((needs.check-changes.outputs.main_package == 'true') || (needs.check-changes.outputs.sgl_kernel == 'true'))
|
||||
runs-on: 4-gpu-h100
|
||||
@@ -936,7 +942,7 @@ jobs:
|
||||
python3 run_suite.py --suite per-commit-4-gpu-deepep
|
||||
|
||||
unit-test-deepep-8-gpu:
|
||||
needs: [check-changes, unit-test-backend-2-gpu]
|
||||
needs: [check-changes, call-gate, unit-test-backend-2-gpu]
|
||||
if: always() && !failure() && !cancelled() &&
|
||||
((needs.check-changes.outputs.main_package == 'true') || (needs.check-changes.outputs.sgl_kernel == 'true'))
|
||||
runs-on: 8-gpu-h200
|
||||
@@ -965,7 +971,7 @@ jobs:
|
||||
python3 run_suite.py --suite per-commit-8-gpu-h200-deepep
|
||||
|
||||
unit-test-backend-4-gpu-b200:
|
||||
needs: [check-changes, unit-test-backend-2-gpu]
|
||||
needs: [check-changes, call-gate, unit-test-backend-2-gpu]
|
||||
if: always() && !failure() && !cancelled() &&
|
||||
((needs.check-changes.outputs.main_package == 'true') || (needs.check-changes.outputs.sgl_kernel == 'true'))
|
||||
runs-on: 4-gpu-b200
|
||||
@@ -999,7 +1005,7 @@ jobs:
|
||||
python3 run_suite.py --suite per-commit-4-gpu-b200 --auto-partition-id ${{ matrix.part }} --auto-partition-size 2 --timeout-per-file 1800
|
||||
|
||||
unit-test-backend-4-gpu-gb200:
|
||||
needs: [check-changes, unit-test-backend-2-gpu, sgl-kernel-build-wheels-arm]
|
||||
needs: [check-changes, call-gate, unit-test-backend-2-gpu, sgl-kernel-build-wheels-arm]
|
||||
if: always() && !failure() && !cancelled() &&
|
||||
((needs.check-changes.outputs.main_package == 'true') || (needs.check-changes.outputs.sgl_kernel == 'true'))
|
||||
runs-on: 4-gpu-gb200
|
||||
|
||||
Reference in New Issue
Block a user