Repository navigation
Path-gate backend-specific pull.yml jobs on PRs and right-size the LLM jobs - #24673
Conversation
…M jobs
About 45 pull.yml jobs had no `if:` and ran on every PR push regardless of what
changed. pull.yml is the single largest CI cost (~1,740 self-hosted minutes per
run, ~1,500 runs a month). This gates the backend-specific ones on their own
paths for pull_request events, using the same
`github.event_name != 'pull_request' || contains(changed-files, ...)` pattern
already used by test-arduino-library, test-minimal-wheel-linux and
test-pybindings-no-aten. Pushes to main and release branches still run every
job, so anything a path filter misses is caught post-merge.
Gated groups (approx. minutes per PR run today):
- QNN (11 jobs, ~290 min): backends/qualcomm, examples/qualcomm, QNN CI
scripts; the LLM ones also on examples/models/llama and extension/llm; the
testsuite also on backends/test/{suite,harness}.
- Arm (3 jobs, ~118 min) and test-mcu-cortex-m-backend (~33 min):
backends/arm, examples/arm, backends/cortex_m, setup-arm-baremetal-tools.sh.
- NXP (3 jobs, ~122 min): backends/nxp, examples/nxp.
- Vulkan (2 jobs, ~45 min): backends/vulkan, setup-vulkan-linux-deps.sh.
- WASM (2 jobs, ~28 min): extension/wasm, examples/wasm, tools/cmake.
- OpenVINO (1 job): backends/openvino, examples/openvino.
- LLM export/runner jobs (phi-3-mini, eval_llama, llama_runner_eager, lora,
lora-multimethod; ~78 min on 94-vCPU boxes): examples/models/{llama,qwen3,
phi-3-mini}, extension/llm, backends/xnnpack and their CI scripts.
Every gate also includes .github/workflows/pull.yml, so this PR itself runs
all of them.
The five LLM jobs also move from mt-l-x86iavx512-94-192 to
mt-l-x86iavx512-32-256: more memory (256 vs 192 GB) at roughly half the
price. They run 11-25 minutes today; this PR's own CI validates they fit.
Binary-size jobs (test-arm-cortex-m-size-test, test-binary-size-*) are left
ungated on purpose since they exist to catch core-runtime size regressions.
🔗 Helpful Links🧪 See artifacts and rendered test results at hud.pytorch.org/pr/pytorch/executorch/24673
Note: Links to docs will display an error until the docs builds have been completed. ✅ No FailuresAs of commit b625b54 with merge base d1f597e ( This comment was automatically generated by Dr. CI and updates every 15 minutes. |
This PR needs a
|
|
@claude review this pr and check if there are any potential regressions / issues |
|
Claude finished @psiddh's task in 4m 10s —— View job The gating logic itself works (pushes to main and release still run every job, Detailed reviewPR Review: #24673SummaryThis PR adds PR-only path gates to about 30 backend and LLM jobs in Three independent reviewers found the same main problem. Each gate lists only its backend's own directory. Shared setup code, the CI Docker images, the PyTorch pin and the core runtime are left out. A PR that breaks QNN, Arm, NXP, Vulkan or the LLM jobs from outside those directories now skips them and passes. Infrastructure
Performance
RecommendationRequest Changes. The gating approach is reasonable, but before merging, the gates should at least:
Separately, the redundant |
About 45 pull.yml jobs had no
if:and ran on every PR push regardless of whatchanged. pull.yml is the single largest CI cost (~1,740 self-hosted minutes per
run, ~1,500 runs a month). This gates the backend-specific ones on their own
paths for pull_request events, using the same
github.event_name != 'pull_request' || contains(changed-files, ...)patternalready used by test-arduino-library, test-minimal-wheel-linux and
test-pybindings-no-aten. Pushes to main and release branches still run every
job, so anything a path filter misses is caught post-merge.
Gated groups (approx. minutes per PR run today):
scripts; the LLM ones also on examples/models/llama and extension/llm; the
testsuite also on backends/test/{suite,harness}.
backends/arm, examples/arm, backends/cortex_m, setup-arm-baremetal-tools.sh.
lora-multimethod; ~78 min on 94-vCPU boxes): examples/models/{llama,qwen3,
phi-3-mini}, extension/llm, backends/xnnpack and their CI scripts.
Every gate also includes .github/workflows/pull.yml, so this PR itself runs
all of them.
The five LLM jobs also move from mt-l-x86iavx512-94-192 to
mt-l-x86iavx512-32-256: more memory (256 vs 192 GB) at roughly half the
price. They run 11-25 minutes today; this PR's own CI validates they fit.
Binary-size jobs (test-arm-cortex-m-size-test, test-binary-size-*) are left
ungated on purpose since they exist to catch core-runtime size regressions.
Context
Part of a set of CI cost reductions for self-hosted (OSDC / AWS) runners. Estimates come from the last 30 days of GitHub Actions run counts times per-job runtimes of a sample run, priced at AWS on-demand rates as a proxy. Independent of the other PRs in the set; they all merge cleanly together.
Validation
Edited YAML parses, and actionlint 1.7.12 reports no diagnostics introduced by this change compared with the base commit. Pre-existing diagnostics were recorded separately. GitHub CI is pending.
Authored with AI assistance; this handoff was reviewed and the PR was opened with Codex.