[AMD] Update/fix AMD CI workflow dispatch mechanism (#20014)

Co-authored-by: bingxche <Bingxu.Chen@amd.com>
This commit is contained in:
YC Tseng
2026-03-06 10:27:44 +03:00
committed by GitHub
parent da27d9bff6
commit 23eb24ddfe
5 changed files with 260 additions and 136 deletions

View File

@@ -42,13 +42,13 @@ jobs:
REF="${{ inputs.aiter_ref || 'main' }}"
echo "Resolving AITER ref: ${REF}"
SHA=$(git ls-remote https://github.com/ROCm/aiter.git "${REF}" | head -1 | cut -f1)
if [ -z "$SHA" ]; then
SHA=$(git ls-remote https://github.com/ROCm/aiter.git "refs/heads/${REF}" | head -1 | cut -f1)
fi
SHA=$(git ls-remote https://github.com/ROCm/aiter.git "refs/heads/${REF}" | head -1 | cut -f1)
if [ -z "$SHA" ]; then
SHA=$(git ls-remote https://github.com/ROCm/aiter.git "refs/tags/${REF}" | head -1 | cut -f1)
fi
if [ -z "$SHA" ]; then
SHA=$(git ls-remote https://github.com/ROCm/aiter.git "${REF}" | head -1 | cut -f1)
fi
if [ -z "$SHA" ]; then
SHA="${REF}"
fi

View File

@@ -20,11 +20,52 @@ on:
required: false
type: boolean
default: true
job_select:
description: 'Select a job to run from dropdown (choose "all" to run all jobs)'
required: false
type: choice
default: 'all'
options:
- 'all'
- nightly-test-1-gpu-unit-rocm720
- nightly-accuracy-2-gpu-rocm720
- nightly-accuracy-2-gpu-vlm-rocm720
- nightly-perf-2-gpu-text-rocm720
- nightly-perf-2-gpu-vlm-rocm720
- nightly-accuracy-8-gpu-rocm720
- nightly-8-gpu-grok1-int4-rocm720
- nightly-8-gpu-grok2-rocm720
- nightly-8-gpu-deepseek-v31-rocm720
- nightly-8-gpu-deepseek-v32-rocm720
- nightly-8-gpu-deepseek-v32-mtp-rocm720
- nightly-8-gpu-deepseek-v3-kv-fp8-rocm720
- nightly-8-gpu-kimi-k25-rocm720
- nightly-8-gpu-qwen3-235b-rocm720
- nightly-8-gpu-qwen35-rocm720
- nightly-8-gpu-glm5-rocm720
- nightly-8-gpu-minimax-m25-rocm720
- nightly-1-gpu-zimage-turbo-rocm720
- nightly-test-1-gpu-mi35x-rocm720
- nightly-accuracy-8-gpu-mi35x-rocm720
- nightly-8-gpu-mi35x-grok1-int4-rocm720
- nightly-8-gpu-mi35x-grok2-rocm720
- nightly-8-gpu-mi35x-deepseek-r1-mxfp4-rocm720
- nightly-8-gpu-mi35x-deepseek-r1-mxfp4-kv-fp8-rocm720
- nightly-8-gpu-mi35x-deepseek-r1-mxfp4-ar-fusion-rocm720
- nightly-accuracy-8-gpu-mi35x-deepseek-v32-rocm720
- nightly-accuracy-8-gpu-mi35x-deepseek-v32-mtp-rocm720
- nightly-perf-8-gpu-mi35x-deepseek-v32-basic-rocm720
- nightly-perf-8-gpu-mi35x-deepseek-v32-mtp-rocm720
- nightly-8-gpu-mi35x-kimi-k25-rocm720
- nightly-8-gpu-mi35x-qwen3-235b-mxfp4-rocm720
- nightly-8-gpu-mi35x-qwen35-rocm720
- nightly-8-gpu-mi35x-glm5-rocm720
- nightly-8-gpu-mi35x-minimax-m25-rocm720
job_filter:
description: 'Comma-separated list of jobs to run (e.g. "nightly-8-gpu-grok2-rocm720,nightly-8-gpu-deepseek-v31-rocm720"). Leave empty or "all" to run all jobs.'
description: 'Or type comma-separated job names (overrides dropdown if non-empty)'
required: false
type: string
default: 'all'
default: ''
workflow_call:
inputs:
ref:
@@ -62,7 +103,7 @@ jobs:
# ============================================== MI30x ROCm 7.2 Unit Tests ==============================================
# 1-GPU Unit Tests - LoRA, debug utils, scheduler, etc. (MI30x ROCm 7.2)
nightly-test-1-gpu-unit-rocm720:
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (inputs.job_filter == '' || inputs.job_filter == 'all' || contains(format(',{0},', inputs.job_filter), ',nightly-test-1-gpu-unit-rocm720,'))
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (!(inputs.job_filter || inputs.job_select) || (inputs.job_filter || inputs.job_select) == 'all' || contains(format(',{0},', inputs.job_filter || inputs.job_select), ',nightly-test-1-gpu-unit-rocm720,'))
runs-on: linux-mi325-1gpu-sglang
steps:
- name: Checkout code
@@ -91,7 +132,7 @@ jobs:
# ============================================== MI30x ROCm 7.2 Accuracy Tests ==============================================
# 2-GPU Accuracy Tests - GSM8K eval (MI30x ROCm 7.2)
nightly-accuracy-2-gpu-rocm720:
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (inputs.job_filter == '' || inputs.job_filter == 'all' || contains(format(',{0},', inputs.job_filter), ',nightly-accuracy-2-gpu-rocm720,'))
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (!(inputs.job_filter || inputs.job_select) || (inputs.job_filter || inputs.job_select) == 'all' || contains(format(',{0},', inputs.job_filter || inputs.job_select), ',nightly-accuracy-2-gpu-rocm720,'))
runs-on: linux-mi325-2gpu-sglang
steps:
- name: Checkout code
@@ -119,7 +160,7 @@ jobs:
# 2-GPU VLM Accuracy Tests - Vision-Language Models MMMU evaluation (ROCm 7.2)
nightly-accuracy-2-gpu-vlm-rocm720:
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (inputs.job_filter == '' || inputs.job_filter == 'all' || contains(format(',{0},', inputs.job_filter), ',nightly-accuracy-2-gpu-vlm-rocm720,'))
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (!(inputs.job_filter || inputs.job_select) || (inputs.job_filter || inputs.job_select) == 'all' || contains(format(',{0},', inputs.job_filter || inputs.job_select), ',nightly-accuracy-2-gpu-vlm-rocm720,'))
runs-on: linux-mi325-2gpu-sglang
steps:
- name: Checkout code
@@ -148,7 +189,7 @@ jobs:
# 2-GPU Text Models Performance Tests (ROCm 7.2)
nightly-perf-2-gpu-text-rocm720:
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (inputs.job_filter == '' || inputs.job_filter == 'all' || contains(format(',{0},', inputs.job_filter), ',nightly-perf-2-gpu-text-rocm720,'))
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (!(inputs.job_filter || inputs.job_select) || (inputs.job_filter || inputs.job_select) == 'all' || contains(format(',{0},', inputs.job_filter || inputs.job_select), ',nightly-perf-2-gpu-text-rocm720,'))
runs-on: linux-mi325-2gpu-sglang
steps:
- name: Checkout code
@@ -178,7 +219,7 @@ jobs:
# 2-GPU VLM Performance Tests (ROCm 7.2)
nightly-perf-2-gpu-vlm-rocm720:
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (inputs.job_filter == '' || inputs.job_filter == 'all' || contains(format(',{0},', inputs.job_filter), ',nightly-perf-2-gpu-vlm-rocm720,'))
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (!(inputs.job_filter || inputs.job_select) || (inputs.job_filter || inputs.job_select) == 'all' || contains(format(',{0},', inputs.job_filter || inputs.job_select), ',nightly-perf-2-gpu-vlm-rocm720,'))
runs-on: linux-mi325-2gpu-sglang
steps:
- name: Checkout code
@@ -208,7 +249,7 @@ jobs:
# 8-GPU Accuracy Tests - GPT-OSS, Grok1-FP8 (ROCm 7.2)
nightly-accuracy-8-gpu-rocm720:
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (inputs.job_filter == '' || inputs.job_filter == 'all' || contains(format(',{0},', inputs.job_filter), ',nightly-accuracy-8-gpu-rocm720,'))
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (!(inputs.job_filter || inputs.job_select) || (inputs.job_filter || inputs.job_select) == 'all' || contains(format(',{0},', inputs.job_filter || inputs.job_select), ',nightly-accuracy-8-gpu-rocm720,'))
runs-on: linux-mi325-8gpu-sglang
steps:
- name: Checkout code
@@ -248,7 +289,7 @@ jobs:
# ============================================== MI30x ROCm 7.2 Combined Accuracy + Performance Tests ==============================================
# 8-GPU Grok1-INT4 (Accuracy + Performance) ROCm 7.2
nightly-8-gpu-grok1-int4-rocm720:
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (inputs.job_filter == '' || inputs.job_filter == 'all' || contains(format(',{0},', inputs.job_filter), ',nightly-8-gpu-grok1-int4-rocm720,'))
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (!(inputs.job_filter || inputs.job_select) || (inputs.job_filter || inputs.job_select) == 'all' || contains(format(',{0},', inputs.job_filter || inputs.job_select), ',nightly-8-gpu-grok1-int4-rocm720,'))
runs-on: linux-mi325-8gpu-sglang
steps:
- name: Checkout code
@@ -291,7 +332,7 @@ jobs:
# 8-GPU Grok2 (Accuracy + Performance) ROCm 7.2
nightly-8-gpu-grok2-rocm720:
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (inputs.job_filter == '' || inputs.job_filter == 'all' || contains(format(',{0},', inputs.job_filter), ',nightly-8-gpu-grok2-rocm720,'))
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (!(inputs.job_filter || inputs.job_select) || (inputs.job_filter || inputs.job_select) == 'all' || contains(format(',{0},', inputs.job_filter || inputs.job_select), ',nightly-8-gpu-grok2-rocm720,'))
runs-on: linux-mi325-8gpu-sglang
steps:
- name: Checkout code
@@ -334,7 +375,7 @@ jobs:
# 8-GPU DeepSeek-V3.1 (Accuracy + Performance) ROCm 7.2
nightly-8-gpu-deepseek-v31-rocm720:
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (inputs.job_filter == '' || inputs.job_filter == 'all' || contains(format(',{0},', inputs.job_filter), ',nightly-8-gpu-deepseek-v31-rocm720,'))
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (!(inputs.job_filter || inputs.job_select) || (inputs.job_filter || inputs.job_select) == 'all' || contains(format(',{0},', inputs.job_filter || inputs.job_select), ',nightly-8-gpu-deepseek-v31-rocm720,'))
runs-on: linux-mi325-8gpu-sglang
steps:
- name: Checkout code
@@ -377,7 +418,7 @@ jobs:
# 8-GPU DeepSeek-V3.2 (Basic Accuracy + Perf) ROCm 7.2
nightly-8-gpu-deepseek-v32-rocm720:
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (inputs.job_filter == '' || inputs.job_filter == 'all' || contains(format(',{0},', inputs.job_filter), ',nightly-8-gpu-deepseek-v32-rocm720,'))
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (!(inputs.job_filter || inputs.job_select) || (inputs.job_filter || inputs.job_select) == 'all' || contains(format(',{0},', inputs.job_filter || inputs.job_select), ',nightly-8-gpu-deepseek-v32-rocm720,'))
runs-on: linux-mi325-8gpu-sglang
steps:
- name: Checkout code
@@ -418,7 +459,7 @@ jobs:
# 8-GPU DeepSeek-V3.2 MTP (MTP Accuracy + Perf) ROCm 7.2
nightly-8-gpu-deepseek-v32-mtp-rocm720:
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (inputs.job_filter == '' || inputs.job_filter == 'all' || contains(format(',{0},', inputs.job_filter), ',nightly-8-gpu-deepseek-v32-mtp-rocm720,'))
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (!(inputs.job_filter || inputs.job_select) || (inputs.job_filter || inputs.job_select) == 'all' || contains(format(',{0},', inputs.job_filter || inputs.job_select), ',nightly-8-gpu-deepseek-v32-mtp-rocm720,'))
runs-on: linux-mi325-8gpu-sglang
steps:
- name: Checkout code
@@ -459,7 +500,7 @@ jobs:
# 8-GPU DeepSeek-V3 KV FP8 (Basic + MTP with --kv-cache-dtype fp8_e4m3) ROCm 7.2
nightly-8-gpu-deepseek-v3-kv-fp8-rocm720:
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (inputs.job_filter == '' || inputs.job_filter == 'all' || contains(format(',{0},', inputs.job_filter), ',nightly-8-gpu-deepseek-v3-kv-fp8-rocm720,'))
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (!(inputs.job_filter || inputs.job_select) || (inputs.job_filter || inputs.job_select) == 'all' || contains(format(',{0},', inputs.job_filter || inputs.job_select), ',nightly-8-gpu-deepseek-v3-kv-fp8-rocm720,'))
runs-on: linux-mi325-8gpu-sglang
steps:
- name: Checkout code
@@ -489,7 +530,7 @@ jobs:
# 8-GPU Kimi-K2.5 (Accuracy) ROCm 7.2
nightly-8-gpu-kimi-k25-rocm720:
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (inputs.job_filter == '' || inputs.job_filter == 'all' || contains(format(',{0},', inputs.job_filter), ',nightly-8-gpu-kimi-k25-rocm720,'))
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (!(inputs.job_filter || inputs.job_select) || (inputs.job_filter || inputs.job_select) == 'all' || contains(format(',{0},', inputs.job_filter || inputs.job_select), ',nightly-8-gpu-kimi-k25-rocm720,'))
runs-on: linux-mi325-8gpu-sglang
steps:
- name: Checkout code
@@ -519,7 +560,7 @@ jobs:
# 8-GPU Qwen3-235B (Accuracy + Performance) ROCm 7.2
nightly-8-gpu-qwen3-235b-rocm720:
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (inputs.job_filter == '' || inputs.job_filter == 'all' || contains(format(',{0},', inputs.job_filter), ',nightly-8-gpu-qwen3-235b-rocm720,'))
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (!(inputs.job_filter || inputs.job_select) || (inputs.job_filter || inputs.job_select) == 'all' || contains(format(',{0},', inputs.job_filter || inputs.job_select), ',nightly-8-gpu-qwen3-235b-rocm720,'))
runs-on: linux-mi325-8gpu-sglang
steps:
- name: Checkout code
@@ -549,7 +590,7 @@ jobs:
# 8-GPU Qwen 3.5 (Accuracy) ROCm 7.2
nightly-8-gpu-qwen35-rocm720:
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (inputs.job_filter == '' || inputs.job_filter == 'all' || contains(format(',{0},', inputs.job_filter), ',nightly-8-gpu-qwen35-rocm720,'))
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (!(inputs.job_filter || inputs.job_select) || (inputs.job_filter || inputs.job_select) == 'all' || contains(format(',{0},', inputs.job_filter || inputs.job_select), ',nightly-8-gpu-qwen35-rocm720,'))
runs-on: linux-mi325-8gpu-sglang
steps:
- name: Checkout code
@@ -581,7 +622,7 @@ jobs:
# 8-GPU GLM-5 (Accuracy) ROCm 7.2
nightly-8-gpu-glm5-rocm720:
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (inputs.job_filter == '' || inputs.job_filter == 'all' || contains(format(',{0},', inputs.job_filter), ',nightly-8-gpu-glm5-rocm720,'))
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (!(inputs.job_filter || inputs.job_select) || (inputs.job_filter || inputs.job_select) == 'all' || contains(format(',{0},', inputs.job_filter || inputs.job_select), ',nightly-8-gpu-glm5-rocm720,'))
runs-on: linux-mi325-8gpu-sglang
steps:
- name: Checkout code
@@ -614,7 +655,7 @@ jobs:
# 8-GPU MiniMax-M2.5 (Accuracy) ROCm 7.2
nightly-8-gpu-minimax-m25-rocm720:
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (inputs.job_filter == '' || inputs.job_filter == 'all' || contains(format(',{0},', inputs.job_filter), ',nightly-8-gpu-minimax-m25-rocm720,'))
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (!(inputs.job_filter || inputs.job_select) || (inputs.job_filter || inputs.job_select) == 'all' || contains(format(',{0},', inputs.job_filter || inputs.job_select), ',nightly-8-gpu-minimax-m25-rocm720,'))
runs-on: linux-mi325-8gpu-sglang
steps:
- name: Checkout code
@@ -646,7 +687,7 @@ jobs:
# ============================================== MI30x ROCm 7.2 Diffusion Tests ==============================================
# 1-GPU Z-Image-Turbo (Diffusion T2I) ROCm 7.2
nightly-1-gpu-zimage-turbo-rocm720:
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (inputs.job_filter == '' || inputs.job_filter == 'all' || inputs.job_filter == 'nightly-1-gpu-zimage-turbo-rocm720')
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (!(inputs.job_filter || inputs.job_select) || (inputs.job_filter || inputs.job_select) == 'all' || contains(format(',{0},', inputs.job_filter || inputs.job_select), ',nightly-1-gpu-zimage-turbo-rocm720,'))
runs-on: linux-mi325-1gpu-sglang
steps:
- name: Checkout code
@@ -686,7 +727,7 @@ jobs:
# ============================================== MI35x ROCm 7.2 Tests ==============================================
# MI35x 1-GPU ROCm 7.2 tests
nightly-test-1-gpu-mi35x-rocm720:
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (inputs.job_filter == '' || inputs.job_filter == 'all' || contains(format(',{0},', inputs.job_filter), ',nightly-test-1-gpu-mi35x-rocm720,'))
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (!(inputs.job_filter || inputs.job_select) || (inputs.job_filter || inputs.job_select) == 'all' || contains(format(',{0},', inputs.job_filter || inputs.job_select), ',nightly-test-1-gpu-mi35x-rocm720,'))
runs-on: linux-mi35x-gpu-1
steps:
- name: Checkout code
@@ -715,7 +756,7 @@ jobs:
# MI35x 8-GPU Accuracy Tests - GPT-OSS (ROCm 7.2)
nightly-accuracy-8-gpu-mi35x-rocm720:
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (inputs.job_filter == '' || inputs.job_filter == 'all' || contains(format(',{0},', inputs.job_filter), ',nightly-accuracy-8-gpu-mi35x-rocm720,'))
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (!(inputs.job_filter || inputs.job_select) || (inputs.job_filter || inputs.job_select) == 'all' || contains(format(',{0},', inputs.job_filter || inputs.job_select), ',nightly-accuracy-8-gpu-mi35x-rocm720,'))
runs-on: linux-mi35x-gpu-8
steps:
- name: Checkout code
@@ -747,7 +788,7 @@ jobs:
# MI35x 8-GPU Grok1-INT4 (Accuracy + Performance) ROCm 7.2
nightly-8-gpu-mi35x-grok1-int4-rocm720:
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (inputs.job_filter == '' || inputs.job_filter == 'all' || contains(format(',{0},', inputs.job_filter), ',nightly-8-gpu-mi35x-grok1-int4-rocm720,'))
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (!(inputs.job_filter || inputs.job_select) || (inputs.job_filter || inputs.job_select) == 'all' || contains(format(',{0},', inputs.job_filter || inputs.job_select), ',nightly-8-gpu-mi35x-grok1-int4-rocm720,'))
runs-on: linux-mi35x-gpu-8
steps:
- name: Checkout code
@@ -793,7 +834,7 @@ jobs:
# MI35x 8-GPU Grok2 (Accuracy + Performance) ROCm 7.2
nightly-8-gpu-mi35x-grok2-rocm720:
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (inputs.job_filter == '' || inputs.job_filter == 'all' || contains(format(',{0},', inputs.job_filter), ',nightly-8-gpu-mi35x-grok2-rocm720,'))
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (!(inputs.job_filter || inputs.job_select) || (inputs.job_filter || inputs.job_select) == 'all' || contains(format(',{0},', inputs.job_filter || inputs.job_select), ',nightly-8-gpu-mi35x-grok2-rocm720,'))
runs-on: linux-mi35x-gpu-8
steps:
- name: Checkout code
@@ -839,7 +880,7 @@ jobs:
# MI35x 8-GPU DeepSeek-R1-MXFP4 (Accuracy + Performance) ROCm 7.2
nightly-8-gpu-mi35x-deepseek-r1-mxfp4-rocm720:
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (inputs.job_filter == '' || inputs.job_filter == 'all' || contains(format(',{0},', inputs.job_filter), ',nightly-8-gpu-mi35x-deepseek-r1-mxfp4-rocm720,'))
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (!(inputs.job_filter || inputs.job_select) || (inputs.job_filter || inputs.job_select) == 'all' || contains(format(',{0},', inputs.job_filter || inputs.job_select), ',nightly-8-gpu-mi35x-deepseek-r1-mxfp4-rocm720,'))
runs-on: linux-mi35x-gpu-8
steps:
- name: Checkout code
@@ -883,7 +924,7 @@ jobs:
# MI35x 8-GPU DeepSeek-R1-MXFP4 KV FP8 (Accuracy + Performance) ROCm 7.2
nightly-8-gpu-mi35x-deepseek-r1-mxfp4-kv-fp8-rocm720:
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (inputs.job_filter == '' || inputs.job_filter == 'all' || contains(format(',{0},', inputs.job_filter), ',nightly-8-gpu-mi35x-deepseek-r1-mxfp4-kv-fp8-rocm720,'))
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (!(inputs.job_filter || inputs.job_select) || (inputs.job_filter || inputs.job_select) == 'all' || contains(format(',{0},', inputs.job_filter || inputs.job_select), ',nightly-8-gpu-mi35x-deepseek-r1-mxfp4-kv-fp8-rocm720,'))
runs-on: linux-mi35x-gpu-8
steps:
- name: Checkout code
@@ -927,7 +968,7 @@ jobs:
# MI35x 8-GPU DeepSeek-R1-MXFP4 AllReduce Fusion (Accuracy + Performance) ROCm 7.2
nightly-8-gpu-mi35x-deepseek-r1-mxfp4-ar-fusion-rocm720:
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (inputs.job_filter == '' || inputs.job_filter == 'all' || contains(format(',{0},', inputs.job_filter), ',nightly-8-gpu-mi35x-deepseek-r1-mxfp4-ar-fusion-rocm720,'))
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (!(inputs.job_filter || inputs.job_select) || (inputs.job_filter || inputs.job_select) == 'all' || contains(format(',{0},', inputs.job_filter || inputs.job_select), ',nightly-8-gpu-mi35x-deepseek-r1-mxfp4-ar-fusion-rocm720,'))
runs-on: linux-mi35x-gpu-8
steps:
- name: Checkout code
@@ -971,7 +1012,7 @@ jobs:
# MI35x 8-GPU DeepSeek-V3.2 Accuracy Test (ROCm 7.2)
nightly-accuracy-8-gpu-mi35x-deepseek-v32-rocm720:
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (inputs.job_filter == '' || inputs.job_filter == 'all' || contains(format(',{0},', inputs.job_filter), ',nightly-accuracy-8-gpu-mi35x-deepseek-v32-rocm720,'))
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (!(inputs.job_filter || inputs.job_select) || (inputs.job_filter || inputs.job_select) == 'all' || contains(format(',{0},', inputs.job_filter || inputs.job_select), ',nightly-accuracy-8-gpu-mi35x-deepseek-v32-rocm720,'))
runs-on: linux-mi35x-gpu-8
steps:
- name: Checkout code
@@ -1004,7 +1045,7 @@ jobs:
# MI35x 8-GPU DeepSeek-V3.2 TP+MTP Accuracy Test (ROCm 7.2)
nightly-accuracy-8-gpu-mi35x-deepseek-v32-mtp-rocm720:
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (inputs.job_filter == '' || inputs.job_filter == 'all' || contains(format(',{0},', inputs.job_filter), ',nightly-accuracy-8-gpu-mi35x-deepseek-v32-mtp-rocm720,'))
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (!(inputs.job_filter || inputs.job_select) || (inputs.job_filter || inputs.job_select) == 'all' || contains(format(',{0},', inputs.job_filter || inputs.job_select), ',nightly-accuracy-8-gpu-mi35x-deepseek-v32-mtp-rocm720,'))
runs-on: linux-mi35x-gpu-8
steps:
- name: Checkout code
@@ -1037,7 +1078,7 @@ jobs:
# MI35x 8-GPU DeepSeek-V3.2 Performance Test (Basic) ROCm 7.2
nightly-perf-8-gpu-mi35x-deepseek-v32-basic-rocm720:
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (inputs.job_filter == '' || inputs.job_filter == 'all' || contains(format(',{0},', inputs.job_filter), ',nightly-perf-8-gpu-mi35x-deepseek-v32-basic-rocm720,'))
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (!(inputs.job_filter || inputs.job_select) || (inputs.job_filter || inputs.job_select) == 'all' || contains(format(',{0},', inputs.job_filter || inputs.job_select), ',nightly-perf-8-gpu-mi35x-deepseek-v32-basic-rocm720,'))
runs-on: linux-mi35x-gpu-8
steps:
- name: Checkout code
@@ -1070,7 +1111,7 @@ jobs:
# MI35x 8-GPU Kimi-K2.5 (Accuracy) ROCm 7.2
nightly-8-gpu-mi35x-kimi-k25-rocm720:
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (inputs.job_filter == '' || inputs.job_filter == 'all' || contains(format(',{0},', inputs.job_filter), ',nightly-8-gpu-mi35x-kimi-k25-rocm720,'))
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (!(inputs.job_filter || inputs.job_select) || (inputs.job_filter || inputs.job_select) == 'all' || contains(format(',{0},', inputs.job_filter || inputs.job_select), ',nightly-8-gpu-mi35x-kimi-k25-rocm720,'))
runs-on: linux-mi35x-gpu-8
steps:
- name: Checkout code
@@ -1103,7 +1144,7 @@ jobs:
# MI35x 8-GPU Qwen3-235B-MXFP4 (Accuracy + Performance) ROCm 7.2
nightly-8-gpu-mi35x-qwen3-235b-mxfp4-rocm720:
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (inputs.job_filter == '' || inputs.job_filter == 'all' || contains(format(',{0},', inputs.job_filter), ',nightly-8-gpu-mi35x-qwen3-235b-mxfp4-rocm720,'))
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (!(inputs.job_filter || inputs.job_select) || (inputs.job_filter || inputs.job_select) == 'all' || contains(format(',{0},', inputs.job_filter || inputs.job_select), ',nightly-8-gpu-mi35x-qwen3-235b-mxfp4-rocm720,'))
runs-on: linux-mi35x-gpu-8
steps:
- name: Checkout code
@@ -1136,7 +1177,7 @@ jobs:
# MI35x 8-GPU Qwen 3.5 (Accuracy) ROCm 7.2
nightly-8-gpu-mi35x-qwen35-rocm720:
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (inputs.job_filter == '' || inputs.job_filter == 'all' || contains(format(',{0},', inputs.job_filter), ',nightly-8-gpu-mi35x-qwen35-rocm720,'))
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (!(inputs.job_filter || inputs.job_select) || (inputs.job_filter || inputs.job_select) == 'all' || contains(format(',{0},', inputs.job_filter || inputs.job_select), ',nightly-8-gpu-mi35x-qwen35-rocm720,'))
runs-on: linux-mi35x-gpu-8
steps:
- name: Checkout code
@@ -1168,7 +1209,7 @@ jobs:
exit ${TEST_EXIT_CODE:-0}
nightly-8-gpu-mi35x-glm5-rocm720:
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (inputs.job_filter == '' || inputs.job_filter == 'all' || contains(format(',{0},', inputs.job_filter), ',nightly-8-gpu-mi35x-glm5-rocm720,'))
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (!(inputs.job_filter || inputs.job_select) || (inputs.job_filter || inputs.job_select) == 'all' || contains(format(',{0},', inputs.job_filter || inputs.job_select), ',nightly-8-gpu-mi35x-glm5-rocm720,'))
runs-on: linux-mi35x-gpu-8
steps:
- name: Checkout code
@@ -1203,7 +1244,7 @@ jobs:
# MI35x 8-GPU MiniMax-M2.5 (Accuracy) ROCm 7.2
nightly-8-gpu-mi35x-minimax-m25-rocm720:
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (inputs.job_filter == '' || inputs.job_filter == 'all' || contains(format(',{0},', inputs.job_filter), ',nightly-8-gpu-mi35x-minimax-m25-rocm720,'))
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (!(inputs.job_filter || inputs.job_select) || (inputs.job_filter || inputs.job_select) == 'all' || contains(format(',{0},', inputs.job_filter || inputs.job_select), ',nightly-8-gpu-mi35x-minimax-m25-rocm720,'))
runs-on: linux-mi35x-gpu-8
steps:
- name: Checkout code
@@ -1236,7 +1277,7 @@ jobs:
# MI35x 8-GPU DeepSeek-V3.2 Performance Test (MTP) ROCm 7.2
nightly-perf-8-gpu-mi35x-deepseek-v32-mtp-rocm720:
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (inputs.job_filter == '' || inputs.job_filter == 'all' || contains(format(',{0},', inputs.job_filter), ',nightly-perf-8-gpu-mi35x-deepseek-v32-mtp-rocm720,'))
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (!(inputs.job_filter || inputs.job_select) || (inputs.job_filter || inputs.job_select) == 'all' || contains(format(',{0},', inputs.job_filter || inputs.job_select), ',nightly-perf-8-gpu-mi35x-deepseek-v32-mtp-rocm720,'))
runs-on: linux-mi35x-gpu-8
steps:
- name: Checkout code

View File

@@ -20,11 +20,52 @@ on:
required: false
type: boolean
default: true
job_select:
description: 'Select a job to run from dropdown (choose "all" to run all jobs)'
required: false
type: choice
default: 'all'
options:
- 'all'
- nightly-test-1-gpu-unit
- nightly-accuracy-2-gpu
- nightly-accuracy-2-gpu-vlm
- nightly-perf-2-gpu-text
- nightly-perf-2-gpu-vlm
- nightly-accuracy-8-gpu
- nightly-8-gpu-grok1-int4
- nightly-8-gpu-grok2
- nightly-8-gpu-deepseek-v31
- nightly-8-gpu-deepseek-v32
- nightly-8-gpu-deepseek-v32-mtp
- nightly-8-gpu-deepseek-v3-kv-fp8
- nightly-8-gpu-kimi-k25
- nightly-8-gpu-qwen3-235b
- nightly-8-gpu-qwen35
- nightly-8-gpu-glm5
- nightly-8-gpu-minimax-m25
- nightly-1-gpu-zimage-turbo
- nightly-test-1-gpu-mi35x
- nightly-accuracy-8-gpu-mi35x
- nightly-8-gpu-mi35x-grok1-int4
- nightly-8-gpu-mi35x-grok2
- nightly-8-gpu-mi35x-deepseek-r1-mxfp4
- nightly-8-gpu-mi35x-deepseek-r1-mxfp4-kv-fp8
- nightly-8-gpu-mi35x-deepseek-r1-mxfp4-ar-fusion
- nightly-accuracy-8-gpu-mi35x-deepseek-v32
- nightly-accuracy-8-gpu-mi35x-deepseek-v32-mtp
- nightly-perf-8-gpu-mi35x-deepseek-v32-basic
- nightly-perf-8-gpu-mi35x-deepseek-v32-mtp
- nightly-8-gpu-mi35x-kimi-k25
- nightly-8-gpu-mi35x-qwen3-235b-mxfp4
- nightly-8-gpu-mi35x-qwen35
- nightly-8-gpu-mi35x-glm5
- nightly-8-gpu-mi35x-minimax-m25
job_filter:
description: 'Comma-separated list of jobs to run (e.g. "nightly-8-gpu-grok2,nightly-8-gpu-deepseek-v31"). Leave empty or "all" to run all jobs.'
description: 'Or type comma-separated job names (overrides dropdown if non-empty)'
required: false
type: string
default: 'all'
default: ''
workflow_call:
inputs:
ref:
@@ -62,7 +103,7 @@ jobs:
# ============================================== MI30x Unit Tests ==============================================
# 1-GPU Unit Tests - LoRA, debug utils, scheduler, etc. (MI30x only)
nightly-test-1-gpu-unit:
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (inputs.job_filter == '' || inputs.job_filter == 'all' || contains(format(',{0},', inputs.job_filter), ',nightly-test-1-gpu-unit,'))
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (!(inputs.job_filter || inputs.job_select) || (inputs.job_filter || inputs.job_select) == 'all' || contains(format(',{0},', inputs.job_filter || inputs.job_select), ',nightly-test-1-gpu-unit,'))
runs-on: linux-mi325-1gpu-sglang
steps:
- name: Checkout code
@@ -92,7 +133,7 @@ jobs:
# ============================================== MI30x Accuracy Tests ==============================================
# 2-GPU Accuracy Tests - GSM8K eval (MI30x only)
nightly-accuracy-2-gpu:
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (inputs.job_filter == '' || inputs.job_filter == 'all' || contains(format(',{0},', inputs.job_filter), ',nightly-accuracy-2-gpu,'))
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (!(inputs.job_filter || inputs.job_select) || (inputs.job_filter || inputs.job_select) == 'all' || contains(format(',{0},', inputs.job_filter || inputs.job_select), ',nightly-accuracy-2-gpu,'))
runs-on: linux-mi325-2gpu-sglang
steps:
- name: Checkout code
@@ -121,7 +162,7 @@ jobs:
# 2-GPU VLM Accuracy Tests - Vision-Language Models MMMU evaluation
nightly-accuracy-2-gpu-vlm:
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (inputs.job_filter == '' || inputs.job_filter == 'all' || contains(format(',{0},', inputs.job_filter), ',nightly-accuracy-2-gpu-vlm,'))
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (!(inputs.job_filter || inputs.job_select) || (inputs.job_filter || inputs.job_select) == 'all' || contains(format(',{0},', inputs.job_filter || inputs.job_select), ',nightly-accuracy-2-gpu-vlm,'))
runs-on: linux-mi325-2gpu-sglang
steps:
- name: Checkout code
@@ -151,7 +192,7 @@ jobs:
# 2-GPU Text Models Performance Tests
nightly-perf-2-gpu-text:
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (inputs.job_filter == '' || inputs.job_filter == 'all' || contains(format(',{0},', inputs.job_filter), ',nightly-perf-2-gpu-text,'))
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (!(inputs.job_filter || inputs.job_select) || (inputs.job_filter || inputs.job_select) == 'all' || contains(format(',{0},', inputs.job_filter || inputs.job_select), ',nightly-perf-2-gpu-text,'))
runs-on: linux-mi325-2gpu-sglang
steps:
- name: Checkout code
@@ -182,7 +223,7 @@ jobs:
# 2-GPU VLM Performance Tests
nightly-perf-2-gpu-vlm:
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (inputs.job_filter == '' || inputs.job_filter == 'all' || contains(format(',{0},', inputs.job_filter), ',nightly-perf-2-gpu-vlm,'))
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (!(inputs.job_filter || inputs.job_select) || (inputs.job_filter || inputs.job_select) == 'all' || contains(format(',{0},', inputs.job_filter || inputs.job_select), ',nightly-perf-2-gpu-vlm,'))
runs-on: linux-mi325-2gpu-sglang
steps:
- name: Checkout code
@@ -213,7 +254,7 @@ jobs:
# 8-GPU Accuracy Tests - GPT-OSS, Grok1-FP8 (accuracy only)
nightly-accuracy-8-gpu:
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (inputs.job_filter == '' || inputs.job_filter == 'all' || contains(format(',{0},', inputs.job_filter), ',nightly-accuracy-8-gpu,'))
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (!(inputs.job_filter || inputs.job_select) || (inputs.job_filter || inputs.job_select) == 'all' || contains(format(',{0},', inputs.job_filter || inputs.job_select), ',nightly-accuracy-8-gpu,'))
runs-on: linux-mi325-8gpu-sglang
steps:
- name: Checkout code
@@ -253,7 +294,7 @@ jobs:
# ============================================== MI30x Combined Accuracy + Performance Tests ==============================================
# 8-GPU Grok1-INT4 (Accuracy + Performance combined)
nightly-8-gpu-grok1-int4:
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (inputs.job_filter == '' || inputs.job_filter == 'all' || contains(format(',{0},', inputs.job_filter), ',nightly-8-gpu-grok1-int4,'))
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (!(inputs.job_filter || inputs.job_select) || (inputs.job_filter || inputs.job_select) == 'all' || contains(format(',{0},', inputs.job_filter || inputs.job_select), ',nightly-8-gpu-grok1-int4,'))
runs-on: linux-mi325-8gpu-sglang
steps:
- name: Checkout code
@@ -296,7 +337,7 @@ jobs:
# 8-GPU Grok2 (Accuracy + Performance combined)
nightly-8-gpu-grok2:
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (inputs.job_filter == '' || inputs.job_filter == 'all' || contains(format(',{0},', inputs.job_filter), ',nightly-8-gpu-grok2,'))
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (!(inputs.job_filter || inputs.job_select) || (inputs.job_filter || inputs.job_select) == 'all' || contains(format(',{0},', inputs.job_filter || inputs.job_select), ',nightly-8-gpu-grok2,'))
runs-on: linux-mi325-8gpu-sglang
steps:
- name: Checkout code
@@ -339,7 +380,7 @@ jobs:
# 8-GPU DeepSeek-V3.1 (Accuracy + Performance combined)
nightly-8-gpu-deepseek-v31:
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (inputs.job_filter == '' || inputs.job_filter == 'all' || contains(format(',{0},', inputs.job_filter), ',nightly-8-gpu-deepseek-v31,'))
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (!(inputs.job_filter || inputs.job_select) || (inputs.job_filter || inputs.job_select) == 'all' || contains(format(',{0},', inputs.job_filter || inputs.job_select), ',nightly-8-gpu-deepseek-v31,'))
runs-on: linux-mi325-8gpu-sglang
steps:
- name: Checkout code
@@ -382,7 +423,7 @@ jobs:
# 8-GPU DeepSeek-V3.2 (Basic Accuracy + Perf)
nightly-8-gpu-deepseek-v32:
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (inputs.job_filter == '' || inputs.job_filter == 'all' || contains(format(',{0},', inputs.job_filter), ',nightly-8-gpu-deepseek-v32,'))
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (!(inputs.job_filter || inputs.job_select) || (inputs.job_filter || inputs.job_select) == 'all' || contains(format(',{0},', inputs.job_filter || inputs.job_select), ',nightly-8-gpu-deepseek-v32,'))
runs-on: linux-mi325-8gpu-sglang
steps:
- name: Checkout code
@@ -423,7 +464,7 @@ jobs:
# 8-GPU DeepSeek-V3.2 MTP (MTP Accuracy + Perf)
nightly-8-gpu-deepseek-v32-mtp:
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (inputs.job_filter == '' || inputs.job_filter == 'all' || contains(format(',{0},', inputs.job_filter), ',nightly-8-gpu-deepseek-v32-mtp,'))
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (!(inputs.job_filter || inputs.job_select) || (inputs.job_filter || inputs.job_select) == 'all' || contains(format(',{0},', inputs.job_filter || inputs.job_select), ',nightly-8-gpu-deepseek-v32-mtp,'))
runs-on: linux-mi325-8gpu-sglang
steps:
- name: Checkout code
@@ -464,7 +505,7 @@ jobs:
# 8-GPU DeepSeek-V3 KV FP8 (Basic + MTP with --kv-cache-dtype fp8_e4m3)
nightly-8-gpu-deepseek-v3-kv-fp8:
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (inputs.job_filter == '' || inputs.job_filter == 'all' || contains(format(',{0},', inputs.job_filter), ',nightly-8-gpu-deepseek-v3-kv-fp8,'))
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (!(inputs.job_filter || inputs.job_select) || (inputs.job_filter || inputs.job_select) == 'all' || contains(format(',{0},', inputs.job_filter || inputs.job_select), ',nightly-8-gpu-deepseek-v3-kv-fp8,'))
runs-on: linux-mi325-8gpu-sglang
steps:
- name: Checkout code
@@ -494,7 +535,7 @@ jobs:
# 8-GPU Kimi-K2.5 (Accuracy)
nightly-8-gpu-kimi-k25:
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (inputs.job_filter == '' || inputs.job_filter == 'all' || contains(format(',{0},', inputs.job_filter), ',nightly-8-gpu-kimi-k25,'))
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (!(inputs.job_filter || inputs.job_select) || (inputs.job_filter || inputs.job_select) == 'all' || contains(format(',{0},', inputs.job_filter || inputs.job_select), ',nightly-8-gpu-kimi-k25,'))
runs-on: linux-mi325-8gpu-sglang
steps:
- name: Checkout code
@@ -523,7 +564,7 @@ jobs:
exit ${TEST_EXIT_CODE:-0}
nightly-8-gpu-qwen3-235b:
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (inputs.job_filter == '' || inputs.job_filter == 'all' || contains(format(',{0},', inputs.job_filter), ',nightly-8-gpu-qwen3-235b,'))
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (!(inputs.job_filter || inputs.job_select) || (inputs.job_filter || inputs.job_select) == 'all' || contains(format(',{0},', inputs.job_filter || inputs.job_select), ',nightly-8-gpu-qwen3-235b,'))
runs-on: linux-mi325-8gpu-sglang
steps:
- name: Checkout code
@@ -553,7 +594,7 @@ jobs:
# 8-GPU Qwen 3.5 (Accuracy)
nightly-8-gpu-qwen35:
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (inputs.job_filter == '' || inputs.job_filter == 'all' || contains(format(',{0},', inputs.job_filter), ',nightly-8-gpu-qwen35,'))
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (!(inputs.job_filter || inputs.job_select) || (inputs.job_filter || inputs.job_select) == 'all' || contains(format(',{0},', inputs.job_filter || inputs.job_select), ',nightly-8-gpu-qwen35,'))
runs-on: linux-mi325-8gpu-sglang
steps:
- name: Checkout code
@@ -584,7 +625,7 @@ jobs:
exit ${TEST_EXIT_CODE:-0}
nightly-8-gpu-glm5:
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (inputs.job_filter == '' || inputs.job_filter == 'all' || contains(format(',{0},', inputs.job_filter), ',nightly-8-gpu-glm5,'))
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (!(inputs.job_filter || inputs.job_select) || (inputs.job_filter || inputs.job_select) == 'all' || contains(format(',{0},', inputs.job_filter || inputs.job_select), ',nightly-8-gpu-glm5,'))
runs-on: linux-mi325-8gpu-sglang
steps:
- name: Checkout code
@@ -617,7 +658,7 @@ jobs:
# 8-GPU MiniMax-M2.5 (Accuracy)
nightly-8-gpu-minimax-m25:
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (inputs.job_filter == '' || inputs.job_filter == 'all' || contains(format(',{0},', inputs.job_filter), ',nightly-8-gpu-minimax-m25,'))
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (!(inputs.job_filter || inputs.job_select) || (inputs.job_filter || inputs.job_select) == 'all' || contains(format(',{0},', inputs.job_filter || inputs.job_select), ',nightly-8-gpu-minimax-m25,'))
runs-on: linux-mi325-8gpu-sglang
steps:
- name: Checkout code
@@ -649,7 +690,7 @@ jobs:
# ============================================== MI30x Diffusion Tests ==============================================
# 1-GPU Z-Image-Turbo (Diffusion T2I)
nightly-1-gpu-zimage-turbo:
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (inputs.job_filter == '' || inputs.job_filter == 'all' || inputs.job_filter == 'nightly-1-gpu-zimage-turbo')
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (!(inputs.job_filter || inputs.job_select) || (inputs.job_filter || inputs.job_select) == 'all' || contains(format(',{0},', inputs.job_filter || inputs.job_select), ',nightly-1-gpu-zimage-turbo,'))
runs-on: linux-mi325-1gpu-sglang
steps:
- name: Checkout code
@@ -689,7 +730,7 @@ jobs:
# ============================================== MI35x Tests ==============================================
# MI35x 1-GPU tests - platform-agnostic tests that may work on CDNA4 (gfx950)
nightly-test-1-gpu-mi35x:
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (inputs.job_filter == '' || inputs.job_filter == 'all' || contains(format(',{0},', inputs.job_filter), ',nightly-test-1-gpu-mi35x,'))
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (!(inputs.job_filter || inputs.job_select) || (inputs.job_filter || inputs.job_select) == 'all' || contains(format(',{0},', inputs.job_filter || inputs.job_select), ',nightly-test-1-gpu-mi35x,'))
runs-on: linux-mi35x-gpu-1
steps:
- name: Checkout code
@@ -721,7 +762,7 @@ jobs:
# MI35x 8-GPU Accuracy Tests - GPT-OSS (accuracy only)
nightly-accuracy-8-gpu-mi35x:
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (inputs.job_filter == '' || inputs.job_filter == 'all' || contains(format(',{0},', inputs.job_filter), ',nightly-accuracy-8-gpu-mi35x,'))
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (!(inputs.job_filter || inputs.job_select) || (inputs.job_filter || inputs.job_select) == 'all' || contains(format(',{0},', inputs.job_filter || inputs.job_select), ',nightly-accuracy-8-gpu-mi35x,'))
runs-on: linux-mi35x-gpu-8
steps:
- name: Checkout code
@@ -753,7 +794,7 @@ jobs:
# MI35x 8-GPU Grok1-INT4 (Accuracy + Performance combined)
nightly-8-gpu-mi35x-grok1-int4:
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (inputs.job_filter == '' || inputs.job_filter == 'all' || contains(format(',{0},', inputs.job_filter), ',nightly-8-gpu-mi35x-grok1-int4,'))
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (!(inputs.job_filter || inputs.job_select) || (inputs.job_filter || inputs.job_select) == 'all' || contains(format(',{0},', inputs.job_filter || inputs.job_select), ',nightly-8-gpu-mi35x-grok1-int4,'))
runs-on: linux-mi35x-gpu-8
steps:
- name: Checkout code
@@ -799,7 +840,7 @@ jobs:
# MI35x 8-GPU Grok2 (Accuracy + Performance combined)
nightly-8-gpu-mi35x-grok2:
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (inputs.job_filter == '' || inputs.job_filter == 'all' || contains(format(',{0},', inputs.job_filter), ',nightly-8-gpu-mi35x-grok2,'))
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (!(inputs.job_filter || inputs.job_select) || (inputs.job_filter || inputs.job_select) == 'all' || contains(format(',{0},', inputs.job_filter || inputs.job_select), ',nightly-8-gpu-mi35x-grok2,'))
runs-on: linux-mi35x-gpu-8
steps:
- name: Checkout code
@@ -845,7 +886,7 @@ jobs:
# MI35x 8-GPU DeepSeek-R1-MXFP4 (Accuracy + Performance combined)
nightly-8-gpu-mi35x-deepseek-r1-mxfp4:
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (inputs.job_filter == '' || inputs.job_filter == 'all' || contains(format(',{0},', inputs.job_filter), ',nightly-8-gpu-mi35x-deepseek-r1-mxfp4,'))
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (!(inputs.job_filter || inputs.job_select) || (inputs.job_filter || inputs.job_select) == 'all' || contains(format(',{0},', inputs.job_filter || inputs.job_select), ',nightly-8-gpu-mi35x-deepseek-r1-mxfp4,'))
runs-on: linux-mi35x-gpu-8
steps:
- name: Checkout code
@@ -889,7 +930,7 @@ jobs:
# MI35x 8-GPU DeepSeek-R1-MXFP4 KV FP8 (Accuracy + Performance combined)
nightly-8-gpu-mi35x-deepseek-r1-mxfp4-kv-fp8:
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (inputs.job_filter == '' || inputs.job_filter == 'all' || contains(format(',{0},', inputs.job_filter), ',nightly-8-gpu-mi35x-deepseek-r1-mxfp4-kv-fp8,'))
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (!(inputs.job_filter || inputs.job_select) || (inputs.job_filter || inputs.job_select) == 'all' || contains(format(',{0},', inputs.job_filter || inputs.job_select), ',nightly-8-gpu-mi35x-deepseek-r1-mxfp4-kv-fp8,'))
runs-on: linux-mi35x-gpu-8
steps:
- name: Checkout code
@@ -933,7 +974,7 @@ jobs:
# MI35x 8-GPU DeepSeek-R1-MXFP4 AllReduce Fusion (Accuracy + Performance combined)
nightly-8-gpu-mi35x-deepseek-r1-mxfp4-ar-fusion:
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (inputs.job_filter == '' || inputs.job_filter == 'all' || contains(format(',{0},', inputs.job_filter), ',nightly-8-gpu-mi35x-deepseek-r1-mxfp4-ar-fusion,'))
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (!(inputs.job_filter || inputs.job_select) || (inputs.job_filter || inputs.job_select) == 'all' || contains(format(',{0},', inputs.job_filter || inputs.job_select), ',nightly-8-gpu-mi35x-deepseek-r1-mxfp4-ar-fusion,'))
runs-on: linux-mi35x-gpu-8
steps:
- name: Checkout code
@@ -977,7 +1018,7 @@ jobs:
# MI35x 8-GPU DeepSeek-V3.2 Accuracy Test
nightly-accuracy-8-gpu-mi35x-deepseek-v32:
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (inputs.job_filter == '' || inputs.job_filter == 'all' || contains(format(',{0},', inputs.job_filter), ',nightly-accuracy-8-gpu-mi35x-deepseek-v32,'))
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (!(inputs.job_filter || inputs.job_select) || (inputs.job_filter || inputs.job_select) == 'all' || contains(format(',{0},', inputs.job_filter || inputs.job_select), ',nightly-accuracy-8-gpu-mi35x-deepseek-v32,'))
runs-on: linux-mi35x-gpu-8
steps:
- name: Checkout code
@@ -1010,7 +1051,7 @@ jobs:
# MI35x 8-GPU DeepSeek-V3.2 TP+MTP Accuracy Test
nightly-accuracy-8-gpu-mi35x-deepseek-v32-mtp:
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (inputs.job_filter == '' || inputs.job_filter == 'all' || contains(format(',{0},', inputs.job_filter), ',nightly-accuracy-8-gpu-mi35x-deepseek-v32-mtp,'))
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (!(inputs.job_filter || inputs.job_select) || (inputs.job_filter || inputs.job_select) == 'all' || contains(format(',{0},', inputs.job_filter || inputs.job_select), ',nightly-accuracy-8-gpu-mi35x-deepseek-v32-mtp,'))
runs-on: linux-mi35x-gpu-8
steps:
- name: Checkout code
@@ -1043,7 +1084,7 @@ jobs:
# MI35x 8-GPU DeepSeek-V3.2 Performance Test (Basic)
nightly-perf-8-gpu-mi35x-deepseek-v32-basic:
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (inputs.job_filter == '' || inputs.job_filter == 'all' || contains(format(',{0},', inputs.job_filter), ',nightly-perf-8-gpu-mi35x-deepseek-v32-basic,'))
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (!(inputs.job_filter || inputs.job_select) || (inputs.job_filter || inputs.job_select) == 'all' || contains(format(',{0},', inputs.job_filter || inputs.job_select), ',nightly-perf-8-gpu-mi35x-deepseek-v32-basic,'))
runs-on: linux-mi35x-gpu-8
steps:
- name: Checkout code
@@ -1076,7 +1117,7 @@ jobs:
# MI35x 8-GPU Kimi-K2.5 (Accuracy)
nightly-8-gpu-mi35x-kimi-k25:
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (inputs.job_filter == '' || inputs.job_filter == 'all' || contains(format(',{0},', inputs.job_filter), ',nightly-8-gpu-mi35x-kimi-k25,'))
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (!(inputs.job_filter || inputs.job_select) || (inputs.job_filter || inputs.job_select) == 'all' || contains(format(',{0},', inputs.job_filter || inputs.job_select), ',nightly-8-gpu-mi35x-kimi-k25,'))
runs-on: linux-mi35x-gpu-8
steps:
- name: Checkout code
@@ -1109,7 +1150,7 @@ jobs:
# MI35x 8-GPU Qwen3-235B-MXFP4 (Accuracy + Performance)
nightly-8-gpu-mi35x-qwen3-235b-mxfp4:
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (inputs.job_filter == '' || inputs.job_filter == 'all' || contains(format(',{0},', inputs.job_filter), ',nightly-8-gpu-mi35x-qwen3-235b-mxfp4,'))
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (!(inputs.job_filter || inputs.job_select) || (inputs.job_filter || inputs.job_select) == 'all' || contains(format(',{0},', inputs.job_filter || inputs.job_select), ',nightly-8-gpu-mi35x-qwen3-235b-mxfp4,'))
runs-on: linux-mi35x-gpu-8
steps:
- name: Checkout code
@@ -1142,7 +1183,7 @@ jobs:
# MI35x 8-GPU Qwen 3.5 (Accuracy)
nightly-8-gpu-mi35x-qwen35:
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (inputs.job_filter == '' || inputs.job_filter == 'all' || contains(format(',{0},', inputs.job_filter), ',nightly-8-gpu-mi35x-qwen35,'))
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (!(inputs.job_filter || inputs.job_select) || (inputs.job_filter || inputs.job_select) == 'all' || contains(format(',{0},', inputs.job_filter || inputs.job_select), ',nightly-8-gpu-mi35x-qwen35,'))
runs-on: linux-mi35x-gpu-8
steps:
- name: Checkout code
@@ -1174,7 +1215,7 @@ jobs:
exit ${TEST_EXIT_CODE:-0}
nightly-8-gpu-mi35x-glm5:
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (inputs.job_filter == '' || inputs.job_filter == 'all' || contains(format(',{0},', inputs.job_filter), ',nightly-8-gpu-mi35x-glm5,'))
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (!(inputs.job_filter || inputs.job_select) || (inputs.job_filter || inputs.job_select) == 'all' || contains(format(',{0},', inputs.job_filter || inputs.job_select), ',nightly-8-gpu-mi35x-glm5,'))
runs-on: linux-mi35x-gpu-8
steps:
- name: Checkout code
@@ -1209,7 +1250,7 @@ jobs:
# MI35x 8-GPU MiniMax-M2.5 (Accuracy)
nightly-8-gpu-mi35x-minimax-m25:
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (inputs.job_filter == '' || inputs.job_filter == 'all' || contains(format(',{0},', inputs.job_filter), ',nightly-8-gpu-mi35x-minimax-m25,'))
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (!(inputs.job_filter || inputs.job_select) || (inputs.job_filter || inputs.job_select) == 'all' || contains(format(',{0},', inputs.job_filter || inputs.job_select), ',nightly-8-gpu-mi35x-minimax-m25,'))
runs-on: linux-mi35x-gpu-8
steps:
- name: Checkout code
@@ -1242,7 +1283,7 @@ jobs:
# MI35x 8-GPU DeepSeek-V3.2 Performance Test (MTP)
nightly-perf-8-gpu-mi35x-deepseek-v32-mtp:
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (inputs.job_filter == '' || inputs.job_filter == 'all' || contains(format(',{0},', inputs.job_filter), ',nightly-perf-8-gpu-mi35x-deepseek-v32-mtp,'))
if: (github.repository == 'sgl-project/sglang' || github.event_name == 'pull_request') && (!(inputs.job_filter || inputs.job_select) || (inputs.job_filter || inputs.job_select) == 'all' || contains(format(',{0},', inputs.job_filter || inputs.job_select), ',nightly-perf-8-gpu-mi35x-deepseek-v32-mtp,'))
runs-on: linux-mi35x-gpu-8
steps:
- name: Checkout code

View File

@@ -1,7 +1,7 @@
name: PR Test ROCm 7.2 (AMD)
# Dynamic run-name for /rerun-stage commands to enable URL lookup
# Format: "[stage-name] sha" for fork PRs, "[stage-name]" for non-fork, default for normal runs
run-name: ${{ inputs.target_stage && (inputs.pr_head_sha && format('[{0}] {1}', inputs.target_stage, inputs.pr_head_sha) || format('[{0}]', inputs.target_stage)) || '' }}
run-name: ${{ (inputs.target_stage || inputs.target_stage_select) && (inputs.pr_head_sha && format('[{0}] {1}', inputs.target_stage || inputs.target_stage_select, inputs.pr_head_sha) || format('[{0}]', inputs.target_stage || inputs.target_stage_select)) || '' }}
on:
# run rocm 720 pr tests once a day at 2am UTC to avoid overwhelming the CI system
@@ -27,8 +27,29 @@ on:
# - "docker/rocm.Dockerfile"
workflow_dispatch:
inputs:
target_stage_select:
description: "Select a stage to run from dropdown (leave empty for auto-detect)"
required: false
type: choice
default: ''
options:
- ''
- sgl-kernel-unit-test-amd
- sgl-kernel-unit-test-2-gpu-amd
- stage-a-test-1-amd
- jit-kernel-unit-test-amd
- stage-b-test-small-1-gpu-amd
- stage-b-test-small-1-gpu-amd-nondeterministic
- stage-b-test-small-1-gpu-amd-mi35x
- stage-b-test-large-1-gpu-amd
- stage-b-test-large-2-gpu-amd
- multimodal-gen-test-1-gpu-amd
- multimodal-gen-test-2-gpu-amd
- stage-c-test-large-8-gpu-amd
- stage-c-test-large-8-gpu-amd-mi35x
- stage-b-test-large-8-gpu-disaggregation-amd
target_stage:
description: "Specific stage(s) to run, comma-separated (e.g. 'stage-a-test-1-amd,stage-b-test-small-1-gpu-amd')"
description: "Or type comma-separated stage names (overrides dropdown if non-empty)"
required: false
type: string
default: ""
@@ -144,9 +165,9 @@ jobs:
if: |
always() &&
(
(contains(format(',{0},', inputs.target_stage), ',sgl-kernel-unit-test-amd,')) ||
(contains(format(',{0},', inputs.target_stage || inputs.target_stage_select), ',sgl-kernel-unit-test-amd,')) ||
(
!inputs.target_stage &&
!(inputs.target_stage || inputs.target_stage_select) &&
needs.check-changes.outputs.sgl_kernel == 'true'
)
)
@@ -190,9 +211,9 @@ jobs:
if: |
always() &&
(
(contains(format(',{0},', inputs.target_stage), ',sgl-kernel-unit-test-2-gpu-amd,')) ||
(contains(format(',{0},', inputs.target_stage || inputs.target_stage_select), ',sgl-kernel-unit-test-2-gpu-amd,')) ||
(
!inputs.target_stage &&
!(inputs.target_stage || inputs.target_stage_select) &&
needs.check-changes.outputs.sgl_kernel == 'true'
)
)
@@ -231,9 +252,9 @@ jobs:
if: |
always() &&
(
(contains(format(',{0},', inputs.target_stage), ',stage-a-test-1-amd,')) ||
(contains(format(',{0},', inputs.target_stage || inputs.target_stage_select), ',stage-a-test-1-amd,')) ||
(
!inputs.target_stage &&
!(inputs.target_stage || inputs.target_stage_select) &&
(!failure() && !cancelled()) &&
((needs.check-changes.outputs.main_package == 'true') || (needs.check-changes.outputs.sgl_kernel == 'true'))
)
@@ -270,9 +291,9 @@ jobs:
if: |
always() &&
(
(contains(format(',{0},', inputs.target_stage), ',jit-kernel-unit-test-amd,')) ||
(contains(format(',{0},', inputs.target_stage || inputs.target_stage_select), ',jit-kernel-unit-test-amd,')) ||
(
!inputs.target_stage &&
!(inputs.target_stage || inputs.target_stage_select) &&
needs.check-changes.outputs.jit_kernel == 'true'
)
)
@@ -308,9 +329,9 @@ jobs:
if: |
always() &&
(
(contains(format(',{0},', inputs.target_stage), ',stage-b-test-small-1-gpu-amd,')) ||
(contains(format(',{0},', inputs.target_stage || inputs.target_stage_select), ',stage-b-test-small-1-gpu-amd,')) ||
(
!inputs.target_stage &&
!(inputs.target_stage || inputs.target_stage_select) &&
(!failure() && !cancelled()) &&
((needs.check-changes.outputs.main_package == 'true') || (needs.check-changes.outputs.sgl_kernel == 'true'))
)
@@ -347,9 +368,9 @@ jobs:
if: |
always() &&
(
(contains(format(',{0},', inputs.target_stage), ',stage-b-test-small-1-gpu-amd-nondeterministic,')) ||
(contains(format(',{0},', inputs.target_stage || inputs.target_stage_select), ',stage-b-test-small-1-gpu-amd-nondeterministic,')) ||
(
!inputs.target_stage &&
!(inputs.target_stage || inputs.target_stage_select) &&
(!failure() && !cancelled()) &&
((needs.check-changes.outputs.main_package == 'true') || (needs.check-changes.outputs.sgl_kernel == 'true'))
)
@@ -385,9 +406,9 @@ jobs:
if: |
always() &&
(
(contains(format(',{0},', inputs.target_stage), ',stage-b-test-small-1-gpu-amd-mi35x,')) ||
(contains(format(',{0},', inputs.target_stage || inputs.target_stage_select), ',stage-b-test-small-1-gpu-amd-mi35x,')) ||
(
!inputs.target_stage &&
!(inputs.target_stage || inputs.target_stage_select) &&
(!failure() && !cancelled()) &&
((needs.check-changes.outputs.main_package == 'true') || (needs.check-changes.outputs.sgl_kernel == 'true'))
)
@@ -423,9 +444,9 @@ jobs:
if: |
always() &&
(
(contains(format(',{0},', inputs.target_stage), ',stage-b-test-large-1-gpu-amd,')) ||
(contains(format(',{0},', inputs.target_stage || inputs.target_stage_select), ',stage-b-test-large-1-gpu-amd,')) ||
(
!inputs.target_stage &&
!(inputs.target_stage || inputs.target_stage_select) &&
(!failure() && !cancelled()) &&
((needs.check-changes.outputs.main_package == 'true') || (needs.check-changes.outputs.sgl_kernel == 'true'))
)
@@ -462,9 +483,9 @@ jobs:
if: |
always() &&
(
(contains(format(',{0},', inputs.target_stage), ',stage-b-test-large-2-gpu-amd,')) ||
(contains(format(',{0},', inputs.target_stage || inputs.target_stage_select), ',stage-b-test-large-2-gpu-amd,')) ||
(
!inputs.target_stage &&
!(inputs.target_stage || inputs.target_stage_select) &&
(!failure() && !cancelled()) &&
((needs.check-changes.outputs.main_package == 'true') || (needs.check-changes.outputs.sgl_kernel == 'true'))
)
@@ -501,9 +522,9 @@ jobs:
if: |
always() &&
(
(contains(format(',{0},', inputs.target_stage), ',multimodal-gen-test-1-gpu-amd,')) ||
(contains(format(',{0},', inputs.target_stage || inputs.target_stage_select), ',multimodal-gen-test-1-gpu-amd,')) ||
(
!inputs.target_stage &&
!(inputs.target_stage || inputs.target_stage_select) &&
(!failure() && !cancelled()) &&
((needs.check-changes.outputs.main_package == 'true') || (needs.check-changes.outputs.sgl_kernel == 'true'))
)
@@ -631,9 +652,9 @@ jobs:
if: |
always() &&
(
(contains(format(',{0},', inputs.target_stage), ',multimodal-gen-test-2-gpu-amd,')) ||
(contains(format(',{0},', inputs.target_stage || inputs.target_stage_select), ',multimodal-gen-test-2-gpu-amd,')) ||
(
!inputs.target_stage &&
!(inputs.target_stage || inputs.target_stage_select) &&
(!failure() && !cancelled()) &&
((needs.check-changes.outputs.main_package == 'true') || (needs.check-changes.outputs.sgl_kernel == 'true'))
)
@@ -760,9 +781,9 @@ jobs:
if: |
always() &&
(
(contains(format(',{0},', inputs.target_stage), ',stage-c-test-large-8-gpu-amd,')) ||
(contains(format(',{0},', inputs.target_stage || inputs.target_stage_select), ',stage-c-test-large-8-gpu-amd,')) ||
(
!inputs.target_stage &&
!(inputs.target_stage || inputs.target_stage_select) &&
(!failure() && !cancelled()) &&
((needs.check-changes.outputs.main_package == 'true') || (needs.check-changes.outputs.sgl_kernel == 'true'))
)
@@ -807,9 +828,9 @@ jobs:
if: |
always() &&
(
(contains(format(',{0},', inputs.target_stage), ',stage-c-test-large-8-gpu-amd-mi35x,')) ||
(contains(format(',{0},', inputs.target_stage || inputs.target_stage_select), ',stage-c-test-large-8-gpu-amd-mi35x,')) ||
(
!inputs.target_stage &&
!(inputs.target_stage || inputs.target_stage_select) &&
(!failure() && !cancelled()) &&
((needs.check-changes.outputs.main_package == 'true') || (needs.check-changes.outputs.sgl_kernel == 'true'))
)
@@ -847,9 +868,9 @@ jobs:
if: |
always() &&
(
(inputs.target_stage == 'stage-b-test-large-8-gpu-disaggregation-amd') ||
(contains(format(',{0},', inputs.target_stage || inputs.target_stage_select), ',stage-b-test-large-8-gpu-disaggregation-amd,')) ||
(
!inputs.target_stage &&
!(inputs.target_stage || inputs.target_stage_select) &&
(!failure() && !cancelled()) &&
((needs.check-changes.outputs.main_package == 'true') || (needs.check-changes.outputs.sgl_kernel == 'true'))
)

View File

@@ -1,7 +1,7 @@
name: PR Test (AMD)
# Dynamic run-name for /rerun-stage commands to enable URL lookup
# Format: "[stage-name] sha" for fork PRs, "[stage-name]" for non-fork, default for normal runs
run-name: ${{ inputs.target_stage && (inputs.pr_head_sha && format('[{0}] {1}', inputs.target_stage, inputs.pr_head_sha) || format('[{0}]', inputs.target_stage)) || '' }}
run-name: ${{ (inputs.target_stage || inputs.target_stage_select) && (inputs.pr_head_sha && format('[{0}] {1}', inputs.target_stage || inputs.target_stage_select, inputs.pr_head_sha) || format('[{0}]', inputs.target_stage || inputs.target_stage_select)) || '' }}
on:
push:
@@ -24,8 +24,29 @@ on:
- "docker/rocm.Dockerfile"
workflow_dispatch:
inputs:
target_stage_select:
description: "Select a stage to run from dropdown (leave empty for auto-detect)"
required: false
type: choice
default: ''
options:
- ''
- sgl-kernel-unit-test-amd
- sgl-kernel-unit-test-2-gpu-amd
- stage-a-test-1-amd
- jit-kernel-unit-test-amd
- stage-b-test-small-1-gpu-amd
- stage-b-test-small-1-gpu-amd-nondeterministic
- stage-b-test-small-1-gpu-amd-mi35x
- stage-b-test-large-1-gpu-amd
- stage-b-test-large-2-gpu-amd
- multimodal-gen-test-1-gpu-amd
- multimodal-gen-test-2-gpu-amd
- stage-c-test-large-8-gpu-amd
- stage-c-test-large-8-gpu-amd-mi35x
- stage-b-test-large-8-gpu-disaggregation-amd
target_stage:
description: "Specific stage(s) to run, comma-separated (e.g. 'stage-a-test-1-amd,stage-b-test-small-1-gpu-amd')"
description: "Or type comma-separated stage names (overrides dropdown if non-empty)"
required: false
type: string
default: ""
@@ -141,9 +162,9 @@ jobs:
if: |
always() &&
(
(contains(format(',{0},', inputs.target_stage), ',sgl-kernel-unit-test-amd,')) ||
(contains(format(',{0},', inputs.target_stage || inputs.target_stage_select), ',sgl-kernel-unit-test-amd,')) ||
(
!inputs.target_stage &&
!(inputs.target_stage || inputs.target_stage_select) &&
needs.check-changes.outputs.sgl_kernel == 'true'
)
)
@@ -188,9 +209,9 @@ jobs:
if: |
always() &&
(
(contains(format(',{0},', inputs.target_stage), ',sgl-kernel-unit-test-2-gpu-amd,')) ||
(contains(format(',{0},', inputs.target_stage || inputs.target_stage_select), ',sgl-kernel-unit-test-2-gpu-amd,')) ||
(
!inputs.target_stage &&
!(inputs.target_stage || inputs.target_stage_select) &&
needs.check-changes.outputs.sgl_kernel == 'true'
)
)
@@ -230,9 +251,9 @@ jobs:
if: |
always() &&
(
(contains(format(',{0},', inputs.target_stage), ',stage-a-test-1-amd,')) ||
(contains(format(',{0},', inputs.target_stage || inputs.target_stage_select), ',stage-a-test-1-amd,')) ||
(
!inputs.target_stage &&
!(inputs.target_stage || inputs.target_stage_select) &&
(!failure() && !cancelled()) &&
((needs.check-changes.outputs.main_package == 'true') || (needs.check-changes.outputs.sgl_kernel == 'true'))
)
@@ -270,9 +291,9 @@ jobs:
if: |
always() &&
(
(contains(format(',{0},', inputs.target_stage), ',jit-kernel-unit-test-amd,')) ||
(contains(format(',{0},', inputs.target_stage || inputs.target_stage_select), ',jit-kernel-unit-test-amd,')) ||
(
!inputs.target_stage &&
!(inputs.target_stage || inputs.target_stage_select) &&
needs.check-changes.outputs.jit_kernel == 'true'
)
)
@@ -309,9 +330,9 @@ jobs:
if: |
always() &&
(
(contains(format(',{0},', inputs.target_stage), ',stage-b-test-small-1-gpu-amd,')) ||
(contains(format(',{0},', inputs.target_stage || inputs.target_stage_select), ',stage-b-test-small-1-gpu-amd,')) ||
(
!inputs.target_stage &&
!(inputs.target_stage || inputs.target_stage_select) &&
(!failure() && !cancelled()) &&
((needs.check-changes.outputs.main_package == 'true') || (needs.check-changes.outputs.sgl_kernel == 'true'))
)
@@ -349,9 +370,9 @@ jobs:
if: |
always() &&
(
(contains(format(',{0},', inputs.target_stage), ',stage-b-test-small-1-gpu-amd-nondeterministic,')) ||
(contains(format(',{0},', inputs.target_stage || inputs.target_stage_select), ',stage-b-test-small-1-gpu-amd-nondeterministic,')) ||
(
!inputs.target_stage &&
!(inputs.target_stage || inputs.target_stage_select) &&
(!failure() && !cancelled()) &&
((needs.check-changes.outputs.main_package == 'true') || (needs.check-changes.outputs.sgl_kernel == 'true'))
)
@@ -388,9 +409,9 @@ jobs:
if: |
always() &&
(
(contains(format(',{0},', inputs.target_stage), ',stage-b-test-small-1-gpu-amd-mi35x,')) ||
(contains(format(',{0},', inputs.target_stage || inputs.target_stage_select), ',stage-b-test-small-1-gpu-amd-mi35x,')) ||
(
!inputs.target_stage &&
!(inputs.target_stage || inputs.target_stage_select) &&
(!failure() && !cancelled()) &&
((needs.check-changes.outputs.main_package == 'true') || (needs.check-changes.outputs.sgl_kernel == 'true'))
)
@@ -427,9 +448,9 @@ jobs:
if: |
always() &&
(
(contains(format(',{0},', inputs.target_stage), ',stage-b-test-large-1-gpu-amd,')) ||
(contains(format(',{0},', inputs.target_stage || inputs.target_stage_select), ',stage-b-test-large-1-gpu-amd,')) ||
(
!inputs.target_stage &&
!(inputs.target_stage || inputs.target_stage_select) &&
(!failure() && !cancelled()) &&
((needs.check-changes.outputs.main_package == 'true') || (needs.check-changes.outputs.sgl_kernel == 'true'))
)
@@ -467,9 +488,9 @@ jobs:
if: |
always() &&
(
(contains(format(',{0},', inputs.target_stage), ',stage-b-test-large-2-gpu-amd,')) ||
(contains(format(',{0},', inputs.target_stage || inputs.target_stage_select), ',stage-b-test-large-2-gpu-amd,')) ||
(
!inputs.target_stage &&
!(inputs.target_stage || inputs.target_stage_select) &&
(!failure() && !cancelled()) &&
((needs.check-changes.outputs.main_package == 'true') || (needs.check-changes.outputs.sgl_kernel == 'true'))
)
@@ -507,9 +528,9 @@ jobs:
if: |
always() &&
(
(contains(format(',{0},', inputs.target_stage), ',multimodal-gen-test-1-gpu-amd,')) ||
(contains(format(',{0},', inputs.target_stage || inputs.target_stage_select), ',multimodal-gen-test-1-gpu-amd,')) ||
(
!inputs.target_stage &&
!(inputs.target_stage || inputs.target_stage_select) &&
needs.check-changes.outputs.multimodal_gen == 'true'
)
)
@@ -635,9 +656,9 @@ jobs:
if: |
always() &&
(
(contains(format(',{0},', inputs.target_stage), ',multimodal-gen-test-2-gpu-amd,')) ||
(contains(format(',{0},', inputs.target_stage || inputs.target_stage_select), ',multimodal-gen-test-2-gpu-amd,')) ||
(
!inputs.target_stage &&
!(inputs.target_stage || inputs.target_stage_select) &&
needs.check-changes.outputs.multimodal_gen == 'true'
)
)
@@ -762,9 +783,9 @@ jobs:
if: |
always() &&
(
(contains(format(',{0},', inputs.target_stage), ',stage-c-test-large-8-gpu-amd,')) ||
(contains(format(',{0},', inputs.target_stage || inputs.target_stage_select), ',stage-c-test-large-8-gpu-amd,')) ||
(
!inputs.target_stage &&
!(inputs.target_stage || inputs.target_stage_select) &&
(!failure() && !cancelled()) &&
((needs.check-changes.outputs.main_package == 'true') || (needs.check-changes.outputs.sgl_kernel == 'true'))
)
@@ -810,9 +831,9 @@ jobs:
if: |
always() &&
(
(contains(format(',{0},', inputs.target_stage), ',stage-c-test-large-8-gpu-amd-mi35x,')) ||
(contains(format(',{0},', inputs.target_stage || inputs.target_stage_select), ',stage-c-test-large-8-gpu-amd-mi35x,')) ||
(
!inputs.target_stage &&
!(inputs.target_stage || inputs.target_stage_select) &&
(!failure() && !cancelled()) &&
((needs.check-changes.outputs.main_package == 'true') || (needs.check-changes.outputs.sgl_kernel == 'true'))
)
@@ -851,9 +872,9 @@ jobs:
if: |
always() &&
(
(contains(format(',{0},', inputs.target_stage), ',stage-b-test-large-8-gpu-disaggregation-amd,')) ||
(contains(format(',{0},', inputs.target_stage || inputs.target_stage_select), ',stage-b-test-large-8-gpu-disaggregation-amd,')) ||
(
!inputs.target_stage &&
!(inputs.target_stage || inputs.target_stage_select) &&
(!failure() && !cancelled()) &&
((needs.check-changes.outputs.main_package == 'true') || (needs.check-changes.outputs.sgl_kernel == 'true'))
)