Add optional JAX release build toggle#6117
Conversation
Mirror the PyTorch release workflow toggle for JAX so manual multi-arch dev releases can skip JAX wheels by default while workflow_call release runs continue to build them. Add a small JAX release matrix script so JAX can share the top-level python_version narrowing behavior. Also add focused tests for the JAX matrix script and current PyTorch release matrix behavior. Testing: - D:/projects/TheRock/.venv/Scripts/python.exe -m pytest github_actions/tests/configure_jax_release_matrix_test.py github_actions/tests/configure_pytorch_release_matrix_test.py - pre-commit run --files .github/workflows/multi_arch_release.yml .github/workflows/multi_arch_release_linux.yml .github/workflows/multi_arch_release_linux_jax_wheels.yml build_tools/github_actions/configure_jax_release_matrix.py build_tools/github_actions/configure_pytorch_release_matrix.py build_tools/github_actions/tests/configure_jax_release_matrix_test.py build_tools/github_actions/tests/configure_pytorch_release_matrix_test.py Assisted-by: Codex
❌ PR Check — Action Required
📖 Need help? See the Policy FAQ for details on every check and how to fix failures. |
|
🚫 Please fix the failed policies before requesting reviews. The following policy checks failed:
The |
|
fyi @erman-gurses + @geomin12 , I have this queued up once some already in-review PRs are merged. |
Avoid exhaustively asserting the expanded default matrix. Check that the default matrix spans multiple Python versions and JAX refs, and that explicit Python versions narrow every generated row. Testing: - D:/projects/TheRock/.venv/Scripts/python.exe -m pytest github_actions/tests/configure_jax_release_matrix_test.py - D:/projects/TheRock/.venv/Scripts/python.exe -m pytest github_actions/tests/configure_pytorch_release_matrix_test.py - pre-commit run --files build_tools/github_actions/tests/configure_jax_release_matrix_test.py Assisted-by: Codex
|
Asking to make sure - little confused about this test. Is this not triggered because of the Trigger a dev release with multi_arch_release_linux.yml, setting build_jax to false |
|
Yeah that looks like an unrelated build flake :/ I just retriggered the jobs that failed on that test run. |
## Motivation Progress on ROCm/TheRock#5634 and ROCm/TheRock#6218. This will be used by ROCm/TheRock#6117 which applies what ROCm/TheRock#5727 added for pytorch to jax: an optional `build_jax` toggle and the `python_version` input to build for a single version instead of all versions. ## Test Plan Dev release in TheRock: https://github.com/ROCm/TheRock/actions/runs/28469583076 ## Submission Checklist - [x] Look over the contributing guidelines at https://github.com/ROCm/ROCm/blob/develop/CONTRIBUTING.md#pull-requests.
## Motivation Progress on #5634 and #6218. This builds on #6117 to provide the JAX equivalent to #6082. Now the dynamic matrix of JAX builds to run will be generated at the _start_ of CI and release pipelines during "setup" / "configure CI" and a table will be included in the summary: <img width="750" height="683" alt="image" src="https://github.com/user-attachments/assets/37b21bd3-1906-4d2f-9732-0602fab9776a" /> ## Technical Details The new `build_jax` option now has these settings: Workflow | `build_jax` value | notes -- | -- | -- `multi_arch_ci.yml` | `false` | Matching previous behavior<br>can later be enabled (opt-in, automatic based on files edited, etc.) `multi_arch_ci_asan.yml` | `false` | New behavior due to #6218 `multi_arch_release.yml` | `inputs.build_jax`<br>(default `true`) | Matching previous behavior `multi_arch_release_asan.yml` | `false` | New behavior due to #6218 ## Test Plan * Dev release triggered to observe CI configuration: https://github.com/ROCm/TheRock/actions/runs/28470132517 ## Submission Checklist - [x] Look over the contributing guidelines at https://github.com/ROCm/ROCm/blob/develop/CONTRIBUTING.md#pull-requests.
Motivation
Progress on #5634 and #6218.
Follow-up to these PRs:
This brings PyTorch and JAX back into alignment with optional triggering, a script to define the job matrix, and the ability to trigger builds for a single python version at a time to save CI resources.
Technical Details
Important
The
python_versioninput will need to be added to https://github.com/ROCm/rockrel/blob/main/.github/workflows/multi_arch_release_linux_jax_wheels.yml, like with ROCm/rockrel#54 and ROCm/rockrel#55.I've prepared this PR for that: ROCm/rockrel#70.
Test Plan
multi_arch_release_linux.yml, settingbuild_jaxtofalsemulti_arch_release_linux_jax_wheels.ymlfor a singlepython_versionSubmission Checklist