From b087ef8b4b802d055610c492e54a22673de96a8b Mon Sep 17 00:00:00 2001 From: alisonshao <54658187+alisonshao@users.noreply.github.com> Date: Wed, 26 Nov 2025 16:04:24 -0800 Subject: [PATCH] Nightly test job filter (#14025) --- .github/workflows/nightly-test-nvidia.yml | 49 +++++++++++++++++------ 1 file changed, 37 insertions(+), 12 deletions(-) diff --git a/.github/workflows/nightly-test-nvidia.yml b/.github/workflows/nightly-test-nvidia.yml index 6c79efa41..4c5aef6f0 100644 --- a/.github/workflows/nightly-test-nvidia.yml +++ b/.github/workflows/nightly-test-nvidia.yml @@ -10,6 +10,26 @@ on: - "python/sglang/version.py" - "test/run_suite.py" workflow_dispatch: + inputs: + job_filter: + description: 'Select which job to run (leave empty or "all" to run all jobs)' + required: false + type: choice + default: 'all' + options: + - 'all' + - 'nightly-test-general-1-gpu-runner' + - 'nightly-test-general-4-gpu-h100' + - 'nightly-test-general-8-gpu-h200' + - 'nightly-test-general-8-gpu-h20' + - 'nightly-test-text-accuracy-2-gpu-runner' + - 'nightly-test-text-perf-2-gpu-runner' + - 'nightly-test-vlm-accuracy-2-gpu-runner' + - 'nightly-test-vlm-perf-2-gpu-runner' + - 'nightly-test-multimodal-server-1-gpu' + - 'nightly-test-multimodal-server-2-gpu' + - 'nightly-test-perf-4-gpu-b200' + - 'nightly-test-perf-8-gpu-b200' workflow_call: inputs: ref: @@ -17,6 +37,11 @@ on: required: false type: string default: '' + job_filter: + description: 'Select which job to run (leave empty or "all" to run all jobs)' + required: false + type: string + default: 'all' concurrency: group: nightly-test-nvidia-${{ github.ref }} @@ -25,7 +50,7 @@ concurrency: jobs: # General tests - 1 GPU nightly-test-general-1-gpu-runner: - if: github.repository == 'sgl-project/sglang' + if: github.repository == 'sgl-project/sglang' && (inputs.job_filter == '' || inputs.job_filter == 'all' || inputs.job_filter == 'nightly-test-general-1-gpu-runner') runs-on: 1-gpu-runner steps: - name: Checkout code @@ -45,7 +70,7 @@ jobs: # General tests - 4 GPU H100 nightly-test-general-4-gpu-h100: - if: github.repository == 'sgl-project/sglang' + if: github.repository == 'sgl-project/sglang' && (inputs.job_filter == '' || inputs.job_filter == 'all' || inputs.job_filter == 'nightly-test-general-4-gpu-h100') runs-on: 4-gpu-h100 steps: - name: Checkout code @@ -65,7 +90,7 @@ jobs: # General tests - 8 GPU H200 nightly-test-general-8-gpu-h200: - if: github.repository == 'sgl-project/sglang' + if: github.repository == 'sgl-project/sglang' && (inputs.job_filter == '' || inputs.job_filter == 'all' || inputs.job_filter == 'nightly-test-general-8-gpu-h200') runs-on: 8-gpu-h200 env: RUNNER_LABELS: 8-gpu-h200 @@ -165,7 +190,7 @@ jobs: # General tests - 8 GPU H20 nightly-test-general-8-gpu-h20: - if: github.repository == 'sgl-project/sglang' + if: github.repository == 'sgl-project/sglang' && (inputs.job_filter == '' || inputs.job_filter == 'all' || inputs.job_filter == 'nightly-test-general-8-gpu-h20') runs-on: 8-gpu-h20 env: SGLANG_CI_RDMA_ALL_DEVICES: "mlx5_1,mlx5_2,mlx5_3,mlx5_4" @@ -189,7 +214,7 @@ jobs: # Text model accuracy tests nightly-test-text-accuracy-2-gpu-runner: - if: github.repository == 'sgl-project/sglang' + if: github.repository == 'sgl-project/sglang' && (inputs.job_filter == '' || inputs.job_filter == 'all' || inputs.job_filter == 'nightly-test-text-accuracy-2-gpu-runner') runs-on: 2-gpu-runner steps: - name: Checkout code @@ -209,7 +234,7 @@ jobs: # Text model performance tests nightly-test-text-perf-2-gpu-runner: - if: github.repository == 'sgl-project/sglang' + if: github.repository == 'sgl-project/sglang' && (inputs.job_filter == '' || inputs.job_filter == 'all' || inputs.job_filter == 'nightly-test-text-perf-2-gpu-runner') runs-on: 2-gpu-runner steps: - name: Checkout code @@ -242,7 +267,7 @@ jobs: # VLM accuracy tests nightly-test-vlm-accuracy-2-gpu-runner: - if: github.repository == 'sgl-project/sglang' + if: github.repository == 'sgl-project/sglang' && (inputs.job_filter == '' || inputs.job_filter == 'all' || inputs.job_filter == 'nightly-test-vlm-accuracy-2-gpu-runner') runs-on: 2-gpu-runner steps: - name: Checkout code @@ -262,7 +287,7 @@ jobs: # VLM performance tests nightly-test-vlm-perf-2-gpu-runner: - if: github.repository == 'sgl-project/sglang' + if: github.repository == 'sgl-project/sglang' && (inputs.job_filter == '' || inputs.job_filter == 'all' || inputs.job_filter == 'nightly-test-vlm-perf-2-gpu-runner') runs-on: 2-gpu-runner steps: - name: Checkout code @@ -295,7 +320,7 @@ jobs: # diffusion performance tests nightly-test-multimodal-server-1-gpu: - if: github.repository == 'sgl-project/sglang' + if: github.repository == 'sgl-project/sglang' && (inputs.job_filter == '' || inputs.job_filter == 'all' || inputs.job_filter == 'nightly-test-multimodal-server-1-gpu') runs-on: 1-gpu-runner strategy: fail-fast: false @@ -328,7 +353,7 @@ jobs: nightly-test-multimodal-server-2-gpu: - if: github.repository == 'sgl-project/sglang' + if: github.repository == 'sgl-project/sglang' && (inputs.job_filter == '' || inputs.job_filter == 'all' || inputs.job_filter == 'nightly-test-multimodal-server-2-gpu') runs-on: 2-gpu-runner strategy: fail-fast: false @@ -361,7 +386,7 @@ jobs: # B200 Performance tests - 4 GPU nightly-test-perf-4-gpu-b200: - if: github.repository == 'sgl-project/sglang' + if: github.repository == 'sgl-project/sglang' && (inputs.job_filter == '' || inputs.job_filter == 'all' || inputs.job_filter == 'nightly-test-perf-4-gpu-b200') runs-on: 4-gpu-b200 steps: - name: Checkout code @@ -381,7 +406,7 @@ jobs: # B200 Performance tests - 8 GPU nightly-test-perf-8-gpu-b200: - if: github.repository == 'sgl-project/sglang' + if: github.repository == 'sgl-project/sglang' && (inputs.job_filter == '' || inputs.job_filter == 'all' || inputs.job_filter == 'nightly-test-perf-8-gpu-b200') runs-on: 8-gpu-b200 env: RUNNER_LABELS: 8-gpu-b200