CI: Split up our monolithic build workflow#150
Conversation
be17037 to
da5532f
Compare
|
Initial testing the refactored method for determining what CI image to use passes. |
dde8d5c to
70750df
Compare
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.
b127652 to
f1359db
Compare
|
Additional testing after refactoring the per-job conditional checking if build_AIS_CI_image was skipped/passed properly. |
f1359db to
26122ab
Compare
|
When this PR is accepted, we will need to update the required CI jobs list as the full workflow name has changed. |
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