feat(ci): Add build_stages input to filter CI build graph - #7600
feat(ci): Add build_stages input to filter CI build graph#7600raramakr wants to merge 2 commits into
Conversation
✅ All Checks Passed — Ready for Review
📖 Need help? See the Policy FAQ for details on every check and how to fix failures. |
|
🎉 All checks passed! This PR is ready for review. |
7ebe548 to
c388f0d
Compare
ScottTodd
left a comment
There was a problem hiding this comment.
skip_stages on its own LGTM, I don't think the validate_artifact_structure change should be needed though.
BTW, I added similar "skip arbitrary stages" to another CI system before, see https://iree.dev/developers/general/contributing/#ci-behavior-manipulation and the code like if: contains(fromJson(needs.setup.outputs.enabled-jobs), 'test_android') in https://github.com/iree-org/iree/blob/main/.github/workflows/pkgci.yml
c388f0d to
effc623
Compare
2a9404e to
fcd8830
Compare
geomin12
left a comment
There was a problem hiding this comment.
the whole purpose of multi-arch is to re-use or re-build all of ROCm, so we can make sure downstream packaging (pytorch, python packages, tarball packaging) is not impact (so release packages don't break). if we skip, we won't be able to test downstream packages
i did exact work here: #6709 but aligned with team to understand the purpose of multi-arch and its importance
Thanks for the context on multi-arch's purpose. I agree that for release builds and others we need the full pipeline to validate downstream packaging. The build_stages input is intended for specialized CI configurations, not to replace the default multi-arch flow. The primary use case is #7202: host-asan This allows callers to create focused ASAN presubmit workflows that:
The default behavior remains unchanged — callers that don't set build_stages still get the full multi-arch pipeline. |
Add a build_stages allowlist input to setup_multi_arch.yml that lets
callers specify which stages to build. Stages outside the allowlist
are skipped entirely (no build, no artifact copy). This enables
focused CI runs that only build specific pipeline stages.
- Add build_stages input to setup_multi_arch.yml
- Add skip_stages input to multi_arch_build_portable_linux.yml and
multi_arch_build_windows.yml
- Add _resolve_skipped_stages() to convert allowlist to skip list
- Pass skip_stages through multi_arch_ci_{linux,windows}.yml
- Auto-disable validate_artifact_structure for partial builds
…ages Per review feedback, artifact validation should work on partial builds and provides meaningful results for subsets of artifacts. Removed the auto-disable logic that skipped validation when build_stages was set. Artifact validation now always runs regardless of build_stages.
fcd8830 to
0009a50
Compare
We want both:
choosing between those will be "defcon" levels documented at https://github.com/ROCm/TheRock/blob/main/docs/rfcs/RFC0013-Consumer-Based-Test-Selection.md#background-gating-levels see also the diagrams I posted originally at #3343 (comment) in particular, case 3 looks like it could benefit from skipping entire build stages
|

Add a build_stages allowlist input to setup_multi_arch.yml that lets
callers specify which stages to build. Stages outside the allowlist
are skipped entirely (no build, no artifact copy). This enables
focused CI runs that only build specific pipeline stages.
ISSUE ID: #7202