This PR is updating the CI workflows to build multi-arch images natively. This should reduce the build time for arm64 builds and be more stable than using qemu
The workflow is doing the following:
Compute the required values:
Matrix: Compute the different variants we need to build using jq (LINUX_VER/CUDA_VER/PYTHON_VER/ARCHES)
Compute the image repository: On PRs we push the temporary images to rapidsai/staging instead of rapidsai/mambaforge-cuda
Compute tag prefix: To prevent collisions on the rapidsai/staging repo, we compute a tag prefix composed of the repo name and the PR number (mambaforge-cuda-31 for example) that will be added in front of the images tags
Build the docker images for each variant:
Call a shared workflow for each LINUX_VER/CUDA_VER/PYTHON_VER
The shared workflow build and push temporary docker images for each ARCHES
On branch builds, build and push multi-arch manifests
This PR is updating the CI workflows to build multi-arch images natively. This should reduce the build time for
arm64
builds and be more stable than usingqemu
The workflow is doing the following:
LINUX_VER
/CUDA_VER
/PYTHON_VER
/ARCHES
)rapidsai/staging
instead ofrapidsai/mambaforge-cuda
rapidsai/staging
repo, we compute a tag prefix composed of the repo name and the PR number (mambaforge-cuda-31
for example) that will be added in front of the images tagsLINUX_VER
/CUDA_VER
/PYTHON_VER
ARCHES
This workflow is showing how this will run on branches: https://github.com/rapidsai/mambaforge-cuda/actions/runs/4936900792