Files
sglang/.github/workflows/weekly-test-nvidia.yml

76 lines
3.0 KiB
YAML

# Weekly CUDA tests. Same shape as nightly-test-nvidia.yml (see its header); a
# test joins by declaring `stage="weekly"` plus a runner_config.
name: Weekly Test (Nvidia)
on:
schedule:
- cron: '0 0 * * 0' # Run every Sunday at midnight UTC
workflow_dispatch:
inputs:
runner_filter:
# A free-text field rather than a choice: `on:` blocks take no
# expressions, so an options list would be a second copy of the matrix
# below to keep in sync. Matched in _pr-test-stage.yml.
description: 'runner_config to run alone (empty or "all" runs every one)'
required: false
type: string
default: 'all'
full_parallel:
description: 'Run all shards of a job at once (faster, but competes with per-commit CI for machines). Off by default: one shard at a time.'
required: false
type: boolean
default: false
concurrency:
group: weekly-test-nvidia-${{ github.ref }}
cancel-in-progress: true
permissions:
actions: write
contents: read
issues: read
pull-requests: read
jobs:
# run_all_tests skips the paths-filter, so main_package is 'true' and
# sgl_kernel stays empty: every test runs, and no job waits on a wheel this
# workflow never builds.
check-changes:
uses: ./.github/workflows/_pr-test-check-changes.yml
with:
pr_test_yml: '.github/workflows/weekly-test-nvidia.yml'
run_all_tests: true
force_continue_on_error: true
secrets: inherit
# One row per machine type; timeouts mirror the same runner's nightly job.
# Adding a machine is one row here, and adding a test to an existing machine
# is none -- `stage="weekly"` + `runner_config=` on the test is enough.
weekly-test:
# Without this, the matrix default names the job after every value in the
# row -- "weekly-test (1-gpu-large, 120, 180)".
name: weekly-test-${{ matrix.runner_config }}
needs: check-changes
if: github.repository == 'sgl-project/sglang'
strategy:
fail-fast: false
matrix:
include:
- { runner_config: 1-gpu-large, run_timeout: '120', job_timeout: '180' }
- { runner_config: 2-gpu-large, run_timeout: '240', job_timeout: '300' }
- { runner_config: 4-gpu-h100, run_timeout: '120', job_timeout: '180' }
- { runner_config: 4-gpu-b200, run_timeout: '150', job_timeout: '210' }
- { runner_config: 8-gpu-h200, run_timeout: '240', job_timeout: '300' }
- { runner_config: 8-gpu-b200, run_timeout: '360', job_timeout: '420' }
uses: ./.github/workflows/_pr-test-stage.yml
with:
self_name: weekly-test-${{ matrix.runner_config }}
runner_config: ${{ matrix.runner_config }}
check_changes: ${{ toJson(needs.check-changes.outputs) }}
caller_inputs: ${{ toJson(inputs) }}
partitions: ${{ needs.check-changes.outputs.partitions }}
run_timeout_minutes: ${{ matrix.run_timeout }}
job_timeout_minutes: ${{ matrix.job_timeout }}
scheduled: true
secrets: inherit