From 99db3b0fa51c6f622ce0c0a0015c46e5b00ca104 Mon Sep 17 00:00:00 2001 From: Alison Shao <54658187+alisonshao@users.noreply.github.com> Date: Tue, 7 Jul 2026 00:14:39 -0700 Subject: [PATCH] ci: run jit-kernel tests on scheduled full runs (#30306) --- .github/workflows/pr-test-jit-kernel.yml | 24 ++++++++++++------------ .github/workflows/pr-test.yml | 12 ++++++++---- 2 files changed, 20 insertions(+), 16 deletions(-) diff --git a/.github/workflows/pr-test-jit-kernel.yml b/.github/workflows/pr-test-jit-kernel.yml index b7a923325..8ef7285b8 100644 --- a/.github/workflows/pr-test-jit-kernel.yml +++ b/.github/workflows/pr-test-jit-kernel.yml @@ -39,9 +39,9 @@ env: jobs: jit-kernel-unit-test: - if: | - github.event_name != 'schedule' && - inputs.test_parallel_dispatch != 'true' + # Runs whenever call-jit-kernel-tests dispatches this workflow. That caller is the + # single gate (PR jit_kernel changes, or scheduled/parallel-dispatch full runs), so + # the sub-jobs no longer re-exclude schedule/parallel-dispatch here. runs-on: 1-gpu-h100 timeout-minutes: 240 steps: @@ -79,9 +79,9 @@ jobs: python3 run_suite.py --hw cuda --suite base-b-kernel-unit-test-1-gpu-large jit-kernel-multigpu-unit-test: - if: | - github.event_name != 'schedule' && - inputs.test_parallel_dispatch != 'true' + # Runs whenever call-jit-kernel-tests dispatches this workflow. That caller is the + # single gate (PR jit_kernel changes, or scheduled/parallel-dispatch full runs), so + # the sub-jobs no longer re-exclude schedule/parallel-dispatch here. runs-on: 8-gpu-h200 timeout-minutes: 240 steps: @@ -117,9 +117,9 @@ jobs: python3 run_suite.py --hw cuda --suite base-b-kernel-unit-test-8-gpu-h200 jit-kernel-benchmark-test: - if: | - github.event_name != 'schedule' && - inputs.test_parallel_dispatch != 'true' + # Runs whenever call-jit-kernel-tests dispatches this workflow. That caller is the + # single gate (PR jit_kernel changes, or scheduled/parallel-dispatch full runs), so + # the sub-jobs no longer re-exclude schedule/parallel-dispatch here. runs-on: 1-gpu-h100 timeout-minutes: 240 steps: @@ -157,9 +157,9 @@ jobs: python3 run_suite.py --hw cuda --suite base-b-kernel-benchmark-test-1-gpu-large jit-kernel-b200-test: - if: | - github.event_name != 'schedule' && - inputs.test_parallel_dispatch != 'true' + # Runs whenever call-jit-kernel-tests dispatches this workflow. That caller is the + # single gate (PR jit_kernel changes, or scheduled/parallel-dispatch full runs), so + # the sub-jobs no longer re-exclude schedule/parallel-dispatch here. runs-on: ${{ fromJson(inputs.runs_on_map)[inputs.runner_config] }} timeout-minutes: 240 steps: diff --git a/.github/workflows/pr-test.yml b/.github/workflows/pr-test.yml index 0f183b20c..d6d663965 100644 --- a/.github/workflows/pr-test.yml +++ b/.github/workflows/pr-test.yml @@ -225,18 +225,22 @@ jobs: call-jit-kernel-tests: needs: [check-changes, call-gate, sgl-kernel-build-wheels] + # Run on scheduled/parallel-dispatch runs (same pattern as the base-* stages) so the + # jit_kernel suite is exercised on main 3x daily, not only on PRs that touch jit_kernel/**. + # check-changes already forces jit_kernel='true' on scheduled runs (run_all_tests). if: | always() && - !failure() && !cancelled() && - github.event_name != 'schedule' && - inputs.test_parallel_dispatch != true && + ((github.event_name == 'schedule' || inputs.test_parallel_dispatch == true) || (!failure() && !cancelled())) && needs.check-changes.outputs.jit_kernel == 'true' uses: ./.github/workflows/pr-test-jit-kernel.yml with: runner_config: 4-gpu-b200 runs_on_map: ${{ needs.check-changes.outputs.runs_on_map }} jit_kernel: ${{ needs.check-changes.outputs.jit_kernel }} - sgl_kernel: ${{ needs.check-changes.outputs.sgl_kernel }} + # On scheduled/parallel-dispatch runs sgl-kernel-build-wheels is skipped, so the wheel + # artifact does not exist. Force sgl_kernel='false' there so the jit-kernel jobs skip the + # wheel download and run against the released/pinned sgl-kernel instead of a fresh build. + sgl_kernel: ${{ (github.event_name == 'schedule' || inputs.test_parallel_dispatch == true) && 'false' || needs.check-changes.outputs.sgl_kernel }} git_ref: ${{ inputs.git_ref || '' }} test_parallel_dispatch: ${{ inputs.test_parallel_dispatch == true && 'true' || 'false' }} skip_pr_test_health_check: ${{ inputs.skip_pr_test_health_check == true }}