name: Nightly Test B200 on: schedule: - cron: '0 0 * * *' push: branches: - main paths: - "python/sglang/version.py" workflow_dispatch: concurrency: group: nightly-test-${{ github.ref }} cancel-in-progress: true jobs: nightly-test-4-gpu-b200: if: github.repository == 'sgl-project/sglang' runs-on: 4-gpu-b200 env: RUNNER_LABELS: 4-gpu-b200 steps: - name: Checkout code uses: actions/checkout@v4 - name: Install dependencies run: | IS_BLACKWELL=1 bash scripts/ci/ci_install_dependency.sh - name: Run GPT-OSS 4GPU nightly performance test timeout-minutes: 60 env: TRACE_BASE_URL: https://raw.githubusercontent.com/sglang-bot/sglang-ci-data/main/traces/${{ github.run_id }} PERFETTO_RELAY_URL: ${{ vars.PERFETTO_RELAY_URL }} run: | rm -rf test/srt/performance_profiles_gpt_oss_4gpu/ cd test/srt python3 nightly/test_gpt_oss_4gpu_perf.py - name: Publish GPT-OSS 4GPU traces to storage repo env: GITHUB_TOKEN: ${{ secrets.GH_PAT_FOR_NIGHTLY_CI_DATA }} GITHUB_RUN_ID: ${{ github.run_id }} GITHUB_RUN_NUMBER: ${{ github.run_number }} run: | python3 scripts/ci/publish_traces.py --traces-dir test/srt/performance_profiles_gpt_oss_4gpu nightly-test-8-gpu-b200: if: github.repository == 'sgl-project/sglang' runs-on: 8-gpu-b200 env: RUNNER_LABELS: 8-gpu-b200 steps: - name: Checkout code uses: actions/checkout@v4 - name: Install dependencies run: | IS_BLACKWELL=1 bash scripts/ci/ci_install_dependency.sh - name: Run DeepSeek v3.1 nightly performance test timeout-minutes: 180 env: TRACE_BASE_URL: https://raw.githubusercontent.com/sglang-bot/sglang-ci-data/main/traces/${{ github.run_id }} PERFETTO_RELAY_URL: ${{ vars.PERFETTO_RELAY_URL }} run: | rm -rf test/srt/performance_profiles_deepseek_v31/ cd test/srt IS_BLACKWELL=1 python3 nightly/test_deepseek_v31_perf.py - name: Publish DeepSeek v3.1 traces to storage repo env: GITHUB_TOKEN: ${{ secrets.GH_PAT_FOR_NIGHTLY_CI_DATA }} GITHUB_RUN_ID: ${{ github.run_id }} GITHUB_RUN_NUMBER: ${{ github.run_number }} run: | python3 scripts/ci/publish_traces.py --traces-dir test/srt/performance_profiles_deepseek_v31 - name: Run DeepSeek v3.2 nightly performance test timeout-minutes: 180 env: TRACE_BASE_URL: https://raw.githubusercontent.com/sglang-bot/sglang-ci-data/main/traces/${{ github.run_id }} PERFETTO_RELAY_URL: ${{ vars.PERFETTO_RELAY_URL }} run: | rm -rf test/srt/performance_profiles_deepseek_v32/ cd test/srt IS_BLACKWELL=1 python3 nightly/test_deepseek_v32_perf.py - name: Publish DeepSeek v3.2 traces to storage repo env: GITHUB_TOKEN: ${{ secrets.GH_PAT_FOR_NIGHTLY_CI_DATA }} GITHUB_RUN_ID: ${{ github.run_id }} GITHUB_RUN_NUMBER: ${{ github.run_number }} run: | python3 scripts/ci/publish_traces.py --traces-dir test/srt/performance_profiles_deepseek_v32 check-all-jobs: if: always() && (github.repository == 'sgl-project/sglang' || github.event_name == 'workflow_dispatch') needs: - nightly-test-4-gpu-b200 - nightly-test-8-gpu-b200 runs-on: ubuntu-latest steps: - name: Check if any job failed run: | if [[ "${{ contains(needs.*.result, 'failure') }}" == "true" ]]; then echo "One or more nightly test jobs failed" exit 1 fi if [[ "${{ contains(needs.*.result, 'cancelled') }}" == "true" ]]; then echo "One or more nightly test jobs were cancelled" exit 1 fi echo "All nightly test jobs passed"