Skip to content

CI: Split up our monolithic build workflow#150

Merged
derobins merged 12 commits into
developfrom
rildixon/ci-split-build-workflow
Jan 14, 2026
Merged

CI: Split up our monolithic build workflow#150
derobins merged 12 commits into
developfrom
rildixon/ci-split-build-workflow

Conversation

@riley-dixon
Copy link
Copy Markdown
Collaborator

@riley-dixon riley-dixon commented Jan 7, 2026

Depends on #148

Largely a refactoring PR, this breaks down our monolithic workflow. It also consolidates a few steps and a few variables that have notably been copy & pasted.

AIROCFILE-97

@riley-dixon riley-dixon self-assigned this Jan 7, 2026
Comment thread .github/workflows/build-ais-nvidia.yml Fixed
Comment thread .github/workflows/build-ais-nvidia.yml Fixed
Comment thread .github/workflows/build-ais-nvidia.yml Fixed
Comment thread .github/workflows/build-ais-nvidia.yml Fixed
Comment thread .github/workflows/build-ais-nvidia.yml Fixed
Comment thread .github/workflows/build-ais-nvidia.yml Fixed
Comment thread .github/workflows/build-ais-nvidia.yml Fixed
@riley-dixon riley-dixon force-pushed the rildixon/ci-split-build-workflow branch 8 times, most recently from be17037 to da5532f Compare January 8, 2026 20:02
@riley-dixon
Copy link
Copy Markdown
Collaborator Author

Initial testing the refactored method for determining what CI image to use passes.
Re-using latest CI image: https://github.com/ROCm/hipFile/actions/runs/20835799697?pr=150
Using new CI image: https://github.com/ROCm/hipFile/actions/runs/20836136248?pr=150

@riley-dixon riley-dixon force-pushed the rildixon/ci-split-build-workflow branch from dde8d5c to 70750df Compare January 9, 2026 20:26
These steps don't necessarily care which OS we are on, just which
package format we are analyzing. This will simplify the conditionals
used in the event we expand which distros or distro versions we have
to support.
These steps don't necessarily care which OS we are on, just which
package manager to use. This will simplify the conditionals used
in the event we expand which distros or distro versions we have
to support.
This will be useful in a future change when we consolidate
compile jobs on ROCm. We still want to preserve binaries produced
by amdclang++ for downstream CI jobs, but also want to run the
same CI build steps with other compilers to verify build fidelity.
Non-amdclang++ compilers no longer have a separate, limited job for verifying
they can build hipFile. They will mostly run the same set of steps as the main
amdclang++ compiler.

By keeping this as a separate job in CI, we do not need to worry about
output variables being overwritten in matrix jobs. If the amdclang++
job succeeds, but this job fails, downstream jobs of amdclang++ will
also still run to give more comprehensive feedback.
The conditional used to set ci_image is getting reused often.
By setting it as an output of a callable workflow, we can set it once
and reuse the result in downstream CI jobs.

Additionally, we "echo" the ci_image variable in the `build-ais.yml`
workflow to reduce the number of dependencies that have to be explicitly
declared in downstream jobs (e.g. System Tests explicitly declaring its
chained dependency on build_AIS_CI_image to gain access to build_AIS_CI_image's
outputs).

The ci_image output variable will get set even if the `if:` conditional
within the build_AIS_CI_image workflow does not pass. Notably, if the
`if:` conditional is not met, the CI job scheduling behaviour remains
unchanged. (In other words, downstream jobs that wait on build_AIS_CI_image
do not wait any longer than they already do when this job is skipped).
This conditional was being used in multiple places. Let's set this value
as an output of build_AIS_CI_image so that it can be reused by the
downstream jobs instead.
@riley-dixon riley-dixon force-pushed the rildixon/ci-split-build-workflow branch 3 times, most recently from b127652 to f1359db Compare January 9, 2026 20:59
@riley-dixon
Copy link
Copy Markdown
Collaborator Author

Additional testing after refactoring the per-job conditional checking if build_AIS_CI_image was skipped/passed properly.
Run where CI image is unchanged: https://github.com/ROCm/hipFile/actions/runs/20864758107?pr=150
Run where CI image is changed and builds successfully: https://github.com/ROCm/hipFile/actions/runs/20865185319?pr=150
Run where CI image is changed and the build fails: https://github.com/ROCm/hipFile/actions/runs/20865389891?pr=150

@riley-dixon riley-dixon force-pushed the rildixon/ci-split-build-workflow branch from f1359db to 26122ab Compare January 9, 2026 21:04
@riley-dixon
Copy link
Copy Markdown
Collaborator Author

When this PR is accepted, we will need to update the required CI jobs list as the full workflow name has changed.

@riley-dixon riley-dixon marked this pull request as ready for review January 9, 2026 22:07
@derobins derobins merged commit 68c6484 into develop Jan 14, 2026
31 checks passed
@derobins derobins deleted the rildixon/ci-split-build-workflow branch January 14, 2026 19:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants