Files
sglang/.github/workflows/nightly-test-amd-miles-rocm720.yml
T

94 lines
3.5 KiB
YAML

name: Nightly Test Miles (AMD ROCm 7.2)
on:
schedule:
# Runs after the 12:00 UTC miles image build has pushed the dated image.
- cron: "30 17 * * *"
workflow_dispatch:
inputs:
image_tag:
description: "Override miles image tag (e.g. miles-rocm720-mi35x-20260621); empty = newest by date"
required: false
type: string
default: ""
continue_on_error:
description: "Continue on error (do not fail the workflow on test failures)"
required: false
type: boolean
default: true
concurrency:
group: ${{ github.workflow }}-${{ github.event_name == 'workflow_dispatch' && format('manual-{0}', github.run_id) || github.ref }}
cancel-in-progress: false
jobs:
test-miles-mi35x:
if: github.repository == 'sgl-project/sglang'
strategy:
fail-fast: false
matrix:
include:
- suite: nightly-stage-c-2-gpu-mi350
runner: linux-mi35x-gpu-2
# Use 8-GPU MI35X pool for 4-GPU suite.
- suite: nightly-stage-c-4-gpu-mi350
runner: linux-mi35x-gpu-8
- suite: nightly-stage-c-8-gpu-mi350
runner: linux-mi35x-gpu-8
runs-on: ${{ matrix.runner }}
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Login to Docker Hub (AMD)
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKERHUB_AMD_USERNAME }}
password: ${{ secrets.DOCKERHUB_AMD_TOKEN }}
- name: Resolve newest miles ROCm 7.2 image
run: |
repo="rocm/sgl-dev"
base="miles-rocm720-mi35x"
tag="${{ inputs.image_tag }}"
if [ -z "${tag}" ]; then
# Walk back from today; the build job pushes a dated tag at 12:00 UTC.
# Probe with `manifest inspect` so we don't pull a multi-GB image just
# to test existence; the real pull happens in amd_ci_start_container.sh.
for i in $(seq 0 6); do
d=$(date -u -d "-${i} day" +%Y%m%d)
candidate="${base}-${d}"
if docker manifest inspect "${repo}:${candidate}" >/dev/null 2>&1; then
tag="${candidate}"
break
fi
done
fi
if [ -z "${tag}" ]; then
echo "::error::No ${repo}:${base}-<date> image found on Docker Hub for the last 7 days"
exit 1
fi
echo "MILES_IMAGE=${repo}:${tag}" >> "$GITHUB_ENV"
echo "Using miles image: ${repo}:${tag}"
- name: Ensure VRAM is clear
run: bash scripts/ci/amd/ensure_vram_clear.sh rocm
- name: Start container from the miles image
run: bash scripts/ci/amd/amd_ci_start_container.sh --custom-image "${MILES_IMAGE}"
env:
GITHUB_WORKSPACE: ${{ github.workspace }}
- name: Run miles CI suite ${{ matrix.suite }}
timeout-minutes: 180
run: |
touch "${GITHUB_WORKSPACE}/github_summary.md"
TEST_EXIT_CODE=0
bash scripts/ci/amd/amd_ci_exec.sh -w /root/miles \
-e PYTHONPATH=/root/miles:/opt/tilelang \
-e GITHUB_STEP_SUMMARY=/sglang-checkout/github_summary.md \
python3 tests/ci/run_suite.py --hw rocm --suite ${{ matrix.suite }} --cadence nightly \
${{ (github.event_name != 'workflow_dispatch' || inputs.continue_on_error) && '--continue-on-error' || '' }} || TEST_EXIT_CODE=$?
cat "${GITHUB_WORKSPACE}/github_summary.md" >> "$GITHUB_STEP_SUMMARY" || true
exit ${TEST_EXIT_CODE}