diff --git a/.github/workflows/ghcr.yml b/.github/workflows/ghcr.yml index 0fcd1b178163e..4a08bcbb8a689 100644 --- a/.github/workflows/ghcr.yml +++ b/.github/workflows/ghcr.yml @@ -48,10 +48,21 @@ jobs: - name: Mirror DockerHub run: | - # DockerHub image we want to mirror - image="ubuntu:22.04" + # List of DockerHub images to mirror to ghcr.io + images=( + # Mirrored because used by the mingw-check-tidy, which doesn't cache Docker images + "ubuntu:22.04" + # Mirrored because used by all linux CI jobs, including mingw-check-tidy + "moby/buildkit:buildx-stable-1" + ) - # Mirror image from DockerHub to ghcr.io - ./crane copy \ - docker.io/${image} \ - ghcr.io/${{ github.repository_owner }}/${image} + # Mirror each image from DockerHub to ghcr.io + for img in "${images[@]}"; do + echo "Mirroring ${img}..." + # Remove namespace from the image if any. + # E.g. "moby/buildkit:buildx-stable-1" becomes "buildkit:buildx-stable-1" + dest_image=$(echo "${img}" | cut -d'/' -f2-) + ./crane copy \ + "docker.io/${img}" \ + "ghcr.io/${{ github.repository_owner }}/${dest_image}" + done