Cleanup unused Dockerfiles and build_all.yml workflow. (#18222)

Follow-up to https://github.com/iree-org/iree/pull/18144. Related to
https://github.com/iree-org/iree/issues/15332.

* `build_all.yml` was used as the first step in multiple other
workflows. New workflows are using `pkgci_build_packages.yml` directly
or nightly releases. Workflows could also use historical artifacts from
`pkgci_build_packages.yml` if they want to use versions different from
the nightly releases.
* `android.Dockerfile` was used for Android builds and benchmarks. New
workflows install the NDK on demand without needing a large Dockerfile.
* `nvidia.Dockerfile` and `nvidia-bleeding-edge.Dockerfile` were used
for CUDA/Vulkan benchmarks. New workflows rely on the drivers and
software packages that are already installed on runners. We could have
workflows install on demand or add new Dockerfiles as needed.
diff --git a/.github/workflows/build_all.yml b/.github/workflows/build_all.yml
deleted file mode 100644
index 7e45b5d..0000000
--- a/.github/workflows/build_all.yml
+++ /dev/null
@@ -1,124 +0,0 @@
-# Copyright 2022 The IREE Authors
-#
-# Licensed under the Apache License v2.0 with LLVM Exceptions.
-# See https://llvm.org/LICENSE.txt for license information.
-# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-#
-# Workflow for building IREE. It is designed to be called from a parent workflow.
-# The concurrency of this workflow is controlled by the caller's job.
-
-name: Build All
-
-on:
-  workflow_call:
-    inputs:
-      runner-group:
-        required: true
-        type: string
-      runner-env:
-        required: true
-        type: string
-      write-caches:
-        required: true
-        type: string
-      run-tests:
-        required: true
-        type: boolean
-    outputs:
-      install-dir:
-        description: Local install directory path.
-        value: ${{ jobs.build_all.outputs.install-dir }}
-      install-dir-archive:
-        description: Name of the zipped install directory.
-        value: ${{ jobs.build_all.outputs.install-dir-archive }}
-      install-dir-gcs-artifact:
-        description: GCS path to the uploaded install archive.
-        value: ${{ jobs.build_all.outputs.install-dir-gcs-artifact }}
-      install-dir-gcs-url:
-        description: GCS URL of the uploaded install archive.
-        value: ${{ jobs.build_all.outputs.install-dir-gcs-url }}
-
-permissions:
-  contents: read
-
-env:
-  # This duplicates the variables from other workflows. The variables need to be
-  # in env instead of the outputs of setup because it contains the run attempt
-  # and we want that to be the current attempt, not whatever attempt the setup
-  # step last ran in. They therefore can't be passed in via inputs because the
-  # env context isn't available there.
-  GCS_DIR: gs://iree-github-actions-${{ github.event_name == 'pull_request' && 'presubmit' || 'postsubmit' }}-artifacts/${{ github.run_id }}/${{ github.run_attempt }}
-  GCS_URL: https://storage.googleapis.com/iree-github-actions-${{ github.event_name == 'pull_request' && 'presubmit' || 'postsubmit' }}-artifacts/${{ github.run_id }}/${{ github.run_attempt }}
-
-jobs:
-  build_all:
-    runs-on:
-      - self-hosted # must come first
-      - runner-group=${{ inputs.runner-group }}
-      - environment=${{ inputs.runner-env }}
-      - cpu
-      - os-family=Linux
-    env:
-      BUILD_DIR: full-build-dir
-      INSTALL_DIR: full-build-dir/install
-    outputs:
-      install-dir: ${{ env.INSTALL_DIR }}
-      # Pass the install directory as output for other jobs to use.
-      # TODO(#16203): replace this with iree-dist packages
-      #   The install directory provides a similar set of files and existing
-      #   jobs are already configured to use the build directory, so this is
-      #   an intermediate step towards a fully package-based CI setup.
-      install-dir-archive: ${{ steps.install-archive.outputs.install-dir-archive }}
-      install-dir-gcs-artifact: ${{ steps.install-upload.outputs.install-dir-gcs-artifact }}
-      install-dir-gcs-url: ${{ steps.install-upload.outputs.install-dir-gcs-url }}
-    steps:
-      - name: "Checking out repository"
-        uses: actions/checkout@v4.1.7
-        with:
-          submodules: true
-      - name: "Building IREE"
-        env:
-          IREE_WRITE_REMOTE_CCACHE: ${{ inputs.write-caches }}
-        run: |
-          ./build_tools/github_actions/docker_run.sh \
-            --env "IREE_CCACHE_GCP_TOKEN=$(gcloud auth application-default print-access-token)" \
-            --env "IREE_WRITE_REMOTE_CCACHE=${IREE_WRITE_REMOTE_CCACHE}" \
-            --env "CCACHE_NAMESPACE=gcr.io/iree-oss/base@sha256:dc314b4fe30fc1315742512891357bffed4d1b62ffcb46258b1e0761c737b446" \
-            --env "IREE_BUILD_SETUP_PYTHON_VENV=${BUILD_DIR}/.venv" \
-            gcr.io/iree-oss/base@sha256:dc314b4fe30fc1315742512891357bffed4d1b62ffcb46258b1e0761c737b446 \
-            ./build_tools/cmake/build_all.sh "${BUILD_DIR}"
-      # TODO(scotttodd): trim build/tests to exclude integration tests (tests/ folder, check tests)
-      #                  that coverage should move to a test_cpu job (matrix with test_gpu?)
-      - name: "Testing IREE"
-        if: inputs.run-tests
-        run: |
-          ./build_tools/github_actions/docker_run.sh \
-            gcr.io/iree-oss/base@sha256:dc314b4fe30fc1315742512891357bffed4d1b62ffcb46258b1e0761c737b446 \
-            ./build_tools/cmake/ctest_all.sh "${BUILD_DIR}"
-      - name: "Testing iree-dialects"
-        if: inputs.run-tests
-        run: |
-          ./build_tools/github_actions/docker_run.sh \
-            gcr.io/iree-oss/base@sha256:dc314b4fe30fc1315742512891357bffed4d1b62ffcb46258b1e0761c737b446 \
-            ./build_tools/cmake/test_iree_dialects.sh "${BUILD_DIR}"
-
-      # TODO(#16203): If this (or iree-dist) is small enough, just use GitHub
-      #   artifacts instead of `tar` commands and GCS
-      - name: "Creating install dir archive"
-        id: install-archive
-        env:
-          INSTALL_DIR_ARCHIVE: install_dir.tar.zst
-        run: |
-          tar -I 'zstd -T0' \
-            -cf ${INSTALL_DIR_ARCHIVE} ${INSTALL_DIR}
-          echo "install-dir-archive=${INSTALL_DIR_ARCHIVE}" >> "${GITHUB_OUTPUT}"
-      - name: "Uploading install dir archive"
-        id: install-upload
-        env:
-          INSTALL_DIR_ARCHIVE: ${{ steps.install-archive.outputs.install-dir-archive }}
-          INSTALL_DIR_GCS_ARTIFACT: ${{ env.GCS_DIR }}/${{ steps.install-archive.outputs.install-dir-archive }}
-          INSTALL_DIR_GCS_URL: ${{ env.GCS_URL }}/${{ steps.install-archive.outputs.install-dir-archive }}
-        run: |
-          gcloud storage cp "${INSTALL_DIR_ARCHIVE}" "${INSTALL_DIR_GCS_ARTIFACT}"
-          echo "install-dir-gcs-artifact=${INSTALL_DIR_GCS_ARTIFACT}" >> "${GITHUB_OUTPUT}"
-          echo "install-dir-gcs-url=${INSTALL_DIR_GCS_URL}" >> "${GITHUB_OUTPUT}"
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 7bbdf67..1ac414a 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -79,71 +79,6 @@
             gcr.io/iree-oss/base-bleeding-edge@sha256:cf2e78194e64fd0166f4141317366261d7a62432b72e9a324cb8c2ff4e1a515a \
             ./build_tools/bazel/build_test_all.sh
 
-  # Disabled while runner is offline.
-  # test_nvidia_a100:
-  #   needs: [setup, build_all]
-  #   if: contains(fromJson(needs.setup.outputs.enabled-jobs), 'test_nvidia_a100')
-  #   env:
-  #     BUILD_DIR: build-tests
-  #     INSTALL_DIR: ${{ needs.build_all.outputs.install-dir }}
-  #     INSTALL_DIR_ARCHIVE: ${{ needs.build_all.outputs.install-dir-archive }}
-  #     INSTALL_DIR_GCS_URL: ${{ needs.build_all.outputs.install-dir-gcs-url }}
-  #     IREE_CPU_DISABLE: 1
-  #     IREE_VULKAN_DISABLE: 0
-  #     IREE_CUDA_DISABLE: 0
-  #     IREE_HIP_DISABLE: 1
-  #   runs-on:
-  #     - self-hosted # must come first
-  #     - runner-group=${{ needs.setup.outputs.runner-group }}
-  #     - environment=${{ needs.setup.outputs.runner-env }}
-  #     - a100
-  #     - os-family=Linux
-  #   steps:
-  #     - name: "Checking out repository"
-  #       uses: actions/checkout@v4.1.7
-  #     - name: "Checking out runtime submodules"
-  #       run: ./build_tools/scripts/git/update_runtime_submodules.sh
-  #     - name: Querying GPU information
-  #       run: |
-  #         ./build_tools/scripts/check_cuda.sh
-  #         ./build_tools/scripts/check_vulkan.sh
-  #     - name: "Downloading install dir archive"
-  #       run: wget "${INSTALL_DIR_GCS_URL}" -O "${INSTALL_DIR_ARCHIVE}"
-  #     - name: "Extracting install directory"
-  #       run: tar -xf "${INSTALL_DIR_ARCHIVE}"
-  #     - name: "Building tests"
-  #       run: |
-  #         ./build_tools/github_actions/docker_run.sh \
-  #             --env IREE_CPU_DISABLE \
-  #             --env IREE_VULKAN_DISABLE \
-  #             --env IREE_CUDA_DISABLE \
-  #             --env IREE_HIP_DISABLE \
-  #             gcr.io/iree-oss/nvidia@sha256:433e072f075f90fdf07471673626b17091d8d8e2395626f1e6ac6c98803c8807 \
-  #             ./build_tools/pkgci/build_tests_using_package.sh ${INSTALL_DIR}/bin
-  #     - name: "Running GPU tests"
-  #       env:
-  #         IREE_CTEST_LABEL_REGEX: ^requires-gpu-sm80|^requires-gpu|^driver=vulkan$|^driver=cuda$
-  #         IREE_NVIDIA_SM80_TESTS_DISABLE: 0
-  #         IREE_MULTI_DEVICE_TESTS_DISABLE: 1
-  #       run: |
-  #         ./build_tools/github_actions/docker_run.sh \
-  #             --env IREE_VULKAN_DISABLE \
-  #             --env IREE_CUDA_DISABLE \
-  #             --env IREE_HIP_DISABLE \
-  #             --env IREE_CTEST_LABEL_REGEX \
-  #             --env IREE_NVIDIA_SM80_TESTS_DISABLE \
-  #             --env IREE_MULTI_DEVICE_TESTS_DISABLE \
-  #             --env IREE_VULKAN_F16_DISABLE=0 \
-  #             --env IREE_NVIDIA_GPU_TESTS_DISABLE=0 \
-  #             --env CTEST_PARALLEL_LEVEL=4 \
-  #             --env NVIDIA_DRIVER_CAPABILITIES=all \
-  #             --gpus all \
-  #             gcr.io/iree-oss/nvidia@sha256:433e072f075f90fdf07471673626b17091d8d8e2395626f1e6ac6c98803c8807 \
-  #             bash -euo pipefail -c \
-  #               "./build_tools/scripts/check_cuda.sh
-  #               ./build_tools/scripts/check_vulkan.sh
-  #               ./build_tools/cmake/ctest_all.sh ${BUILD_DIR}"
-
   ############################### Configurations ###############################
   # Jobs that build IREE in some non-default configuration
   ##############################################################################
@@ -301,6 +236,7 @@
   ##############################################################################
 
   # Disabled to reduce self-hosted runners needed. See #17957
+  # TODO(#17957): migrate to pkgci
   # cross_compile_and_test:
   #   needs: [setup, build_all]
   #   if: contains(fromJson(needs.setup.outputs.enabled-jobs), 'cross_compile_and_test')
diff --git a/build_tools/docker/dockerfiles/android.Dockerfile b/build_tools/docker/dockerfiles/android.Dockerfile
deleted file mode 100644
index eae9e14..0000000
--- a/build_tools/docker/dockerfiles/android.Dockerfile
+++ /dev/null
@@ -1,19 +0,0 @@
-# Copyright 2020 The IREE Authors
-#
-# Licensed under the Apache License v2.0 with LLVM Exceptions.
-# See https://llvm.org/LICENSE.txt for license information.
-# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-
-# An image for cross-compiling IREE towards Android.
-
-FROM gcr.io/iree-oss/base@sha256:dc314b4fe30fc1315742512891357bffed4d1b62ffcb46258b1e0761c737b446
-ARG NDK_VERSION=r25b
-WORKDIR /install-ndk
-
-ENV ANDROID_NDK "/usr/src/android-ndk-${NDK_VERSION}"
-
-RUN wget -q "https://dl.google.com/android/repository/android-ndk-${NDK_VERSION}-linux.zip" \
-    && unzip -q "android-ndk-${NDK_VERSION}-linux.zip" -d /usr/src/  \
-    && rm -rf /install-ndk
-
-WORKDIR /
diff --git a/build_tools/docker/dockerfiles/nvidia-bleeding-edge.Dockerfile b/build_tools/docker/dockerfiles/nvidia-bleeding-edge.Dockerfile
deleted file mode 100644
index 8bfe782..0000000
--- a/build_tools/docker/dockerfiles/nvidia-bleeding-edge.Dockerfile
+++ /dev/null
@@ -1,70 +0,0 @@
-# Copyright 2023 The IREE Authors
-#
-# Licensed under the Apache License v2.0 with LLVM Exceptions.
-# See https://llvm.org/LICENSE.txt for license information.
-# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-
-# An image with latest stuff for building IREE using CMake and testing IREE with
-# NVIDIA GPUs.
-
-# To use the host GPUs, `docker run` must be called with the `--gpus all` flag.
-
-# We use .deb files that we host because we have to pin the version and packages
-# routinely dissapear from the Ubuntu apt repositories. The versions need to be
-# compatible with the host driver (usually <= host driver version).
-ARG NVIDIA_GL_DEB="libnvidia-gl-535_535.113.01-0ubuntu0.22.04.1_amd64.deb"
-ARG NVIDIA_COMPUTE_DEB="libnvidia-compute-535_535.113.01-0ubuntu0.22.04.1_amd64.deb"
-ARG NVIDIA_COMMON_DEB="libnvidia-common-535_535.113.01-0ubuntu0.22.04.1_all.deb"
-ARG NVIDIA_EGL_WAYLAND_DEB="libnvidia-egl-wayland1_1.1.9-1.1_amd64.deb"
-
-
-FROM gcr.io/iree-oss/base-bleeding-edge@sha256:cf2e78194e64fd0166f4141317366261d7a62432b72e9a324cb8c2ff4e1a515a AS fetch-nvidia
-ARG NVIDIA_COMMON_DEB
-ARG NVIDIA_GL_DEB
-ARG NVIDIA_COMPUTE_DEB
-ARG NVIDIA_EGL_WAYLAND_DEB
-
-WORKDIR /fetch-nvidia
-RUN wget -q "https://storage.googleapis.com/iree-shared-files/${NVIDIA_COMMON_DEB}"
-RUN wget -q "https://storage.googleapis.com/iree-shared-files/${NVIDIA_GL_DEB}"
-RUN wget -q "https://storage.googleapis.com/iree-shared-files/${NVIDIA_COMPUTE_DEB}"
-RUN wget -q "https://storage.googleapis.com/iree-shared-files/${NVIDIA_EGL_WAYLAND_DEB}"
-
-
-# Set up the image and working directory by inheriting the base-bleeding-edge
-# CMake configuration.
-# Note that we don't start from NVIDIA's docker base:
-# - nvidia/cuda (https://hub.docker.com/r/nvidia/cuda):
-#     it's.. for CUDA.
-# - nvidia/vulkan (https://hub.docker.com/r/nvidia/vulkan):
-#      does not support Ubuntu 22.04.
-# This allows to share configuration with base CMake.
-FROM gcr.io/iree-oss/base-bleeding-edge@sha256:cf2e78194e64fd0166f4141317366261d7a62432b72e9a324cb8c2ff4e1a515a AS final
-ARG NVIDIA_COMMON_DEB
-ARG NVIDIA_GL_DEB
-ARG NVIDIA_COMPUTE_DEB
-ARG NVIDIA_EGL_WAYLAND_DEB
-
-COPY --from=fetch-nvidia \
-  "/fetch-nvidia/${NVIDIA_COMMON_DEB}" \
-  "/fetch-nvidia/${NVIDIA_GL_DEB}" \
-  "/fetch-nvidia/${NVIDIA_COMPUTE_DEB}" \
-  "/fetch-nvidia/${NVIDIA_EGL_WAYLAND_DEB}" \
-  /tmp/
-
-# The local .deb files have dependencies that requires apt-get update to locate.
-RUN apt-get update \
-  && apt-get -y install "/tmp/${NVIDIA_COMMON_DEB}" \
-  "/tmp/${NVIDIA_GL_DEB}" \
-  "/tmp/${NVIDIA_COMPUTE_DEB}" \
-  "/tmp/${NVIDIA_EGL_WAYLAND_DEB}"
-
-# Install the CUDA SDK
-RUN wget https://developer.download.nvidia.com/compute/cuda/12.2.1/local_installers/cuda-repo-ubuntu2204-12-2-local_12.2.1-535.86.10-1_amd64.deb \
-  && dpkg --install cuda-repo-ubuntu2204-12-2-local_12.2.1-535.86.10-1_amd64.deb \
-  && cp /var/cuda-repo-ubuntu2204-12-2-local/cuda-*-keyring.gpg /usr/share/keyrings/ \
-  && apt-get update \
-  && apt-get -y install cuda-toolkit-12-2
-
-# Adding CUDA binaries to Path
-ENV PATH=${PATH}:/usr/local/cuda/bin/
diff --git a/build_tools/docker/dockerfiles/nvidia.Dockerfile b/build_tools/docker/dockerfiles/nvidia.Dockerfile
deleted file mode 100644
index 6e0caff..0000000
--- a/build_tools/docker/dockerfiles/nvidia.Dockerfile
+++ /dev/null
@@ -1,63 +0,0 @@
-# Copyright 2020 The IREE Authors
-#
-# Licensed under the Apache License v2.0 with LLVM Exceptions.
-# See https://llvm.org/LICENSE.txt for license information.
-# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-
-# An image for building IREE using CMake and testing IREE with NVIDIA GPUs.
-
-# To use the host GPUs, `docker run` must be called with the `--gpus all` flag.
-
-# We use .deb files that we host because we have to pin the version and packages
-# routinely dissapear from the Ubuntu apt repositories. The versions need to be
-# compatible with the host driver (usually <= host driver version).
-ARG NVIDIA_GL_DEB="libnvidia-gl-535_535.113.01-0ubuntu0.20.04.1_amd64.deb"
-ARG NVIDIA_COMPUTE_DEB="libnvidia-compute-535_535.113.01-0ubuntu0.20.04.1_amd64.deb"
-ARG NVIDIA_COMMON_DEB="libnvidia-common-535_535.113.01-0ubuntu0.20.04.1_all.deb"
-
-
-FROM gcr.io/iree-oss/base@sha256:dc314b4fe30fc1315742512891357bffed4d1b62ffcb46258b1e0761c737b446 AS fetch-nvidia
-ARG NVIDIA_COMMON_DEB
-ARG NVIDIA_GL_DEB
-ARG NVIDIA_COMPUTE_DEB
-
-WORKDIR /fetch-nvidia
-RUN wget -q "https://storage.googleapis.com/iree-shared-files/${NVIDIA_COMMON_DEB}"
-RUN wget -q "https://storage.googleapis.com/iree-shared-files/${NVIDIA_GL_DEB}"
-RUN wget -q "https://storage.googleapis.com/iree-shared-files/${NVIDIA_COMPUTE_DEB}"
-
-
-# Set up the image and working directory by inheriting the base CMake
-# configuration.
-# Note that we don't start from NVIDIA's docker base:
-# - nvidia/cuda (https://hub.docker.com/r/nvidia/cuda), or
-# - nvidia/vulkan (https://hub.docker.com/r/nvidia/vulkan).
-# This allows to share configuration with base CMake and better control the
-# installed packages. But it does mean we need to carefully manage the MATCHING
-# of the driver version between the host machine and the docker image.
-FROM gcr.io/iree-oss/base@sha256:dc314b4fe30fc1315742512891357bffed4d1b62ffcb46258b1e0761c737b446 AS final
-ARG NVIDIA_COMMON_DEB
-ARG NVIDIA_GL_DEB
-ARG NVIDIA_COMPUTE_DEB
-
-COPY --from=fetch-nvidia \
-  "/fetch-nvidia/${NVIDIA_COMMON_DEB}" \
-  "/fetch-nvidia/${NVIDIA_GL_DEB}" \
-  "/fetch-nvidia/${NVIDIA_COMPUTE_DEB}" \
-  /tmp/
-
-# The local .deb files have dependencies that requires apt-get update to locate.
-RUN apt-get update \
-  && apt-get -y install "/tmp/${NVIDIA_COMMON_DEB}" \
-  "/tmp/${NVIDIA_GL_DEB}" \
-  "/tmp/${NVIDIA_COMPUTE_DEB}"
-
-# Install the CUDA SDK
-RUN wget https://developer.download.nvidia.com/compute/cuda/12.2.1/local_installers/cuda-repo-ubuntu2004-12-2-local_12.2.1-535.86.10-1_amd64.deb \
-  && dpkg --install cuda-repo-ubuntu2004-12-2-local_12.2.1-535.86.10-1_amd64.deb \
-  && cp /var/cuda-repo-ubuntu2004-12-2-local/cuda-*-keyring.gpg /usr/share/keyrings/ \
-  && apt-get update \
-  && apt-get -y install cuda-toolkit-12-2
-
-# Adding CUDA binaries to Path
-ENV PATH=${PATH}:/usr/local/cuda/bin/
diff --git a/build_tools/docker/manage_images.py b/build_tools/docker/manage_images.py
index 25a4ead..e9022a7 100755
--- a/build_tools/docker/manage_images.py
+++ b/build_tools/docker/manage_images.py
@@ -45,16 +45,12 @@
 IMAGES_TO_DEPENDENCIES = {
     "base": [],
     "base-arm64": [],
-    "android": ["base"],
     "emscripten": ["base"],
-    "nvidia": ["base"],
     "riscv": ["base"],
     "riscv-toolchain-builder": [],
-    "samples": ["base"],
     # Containers with all the newest versions of dependencies that we support
     # instead of the oldest.
     "base-bleeding-edge": [],
-    "nvidia-bleeding-edge": ["base-bleeding-edge"],
 }
 
 IMAGES_TO_DEPENDENT_IMAGES = {k: [] for k in IMAGES_TO_DEPENDENCIES}
diff --git a/build_tools/docker/prod_digests.txt b/build_tools/docker/prod_digests.txt
index e8d721b..6070072 100644
--- a/build_tools/docker/prod_digests.txt
+++ b/build_tools/docker/prod_digests.txt
@@ -1,9 +1,6 @@
 gcr.io/iree-oss/base@sha256:dc314b4fe30fc1315742512891357bffed4d1b62ffcb46258b1e0761c737b446
 gcr.io/iree-oss/riscv@sha256:62e87bad3405d691ddba6f9be0ef44eeb60461a467c8d86f0842c81a1f97da79
-gcr.io/iree-oss/nvidia@sha256:433e072f075f90fdf07471673626b17091d8d8e2395626f1e6ac6c98803c8807
 gcr.io/iree-oss/emscripten@sha256:2dd4c52f1bb499ab365aad0111fe5538b685d88af38636b409b0cf6a576ab214
-gcr.io/iree-oss/android@sha256:66b92a1c920588a73d03316f26025407ea754bab93e8f9bfe40dbf6ed5fe6c7e
 gcr.io/iree-oss/base-bleeding-edge@sha256:cf2e78194e64fd0166f4141317366261d7a62432b72e9a324cb8c2ff4e1a515a
-gcr.io/iree-oss/nvidia-bleeding-edge@sha256:a3b7b78c66c6fe3383b01c7662982c63f708637af1f92a7890b3256c2f178aa7
 gcr.io/iree-oss/base-arm64@sha256:9daa1cdbbf12da8527319ece76a64d06219e04ecb99a4cff6e6364235ddf6c59
 gcr.io/iree-oss/riscv-toolchain-builder@sha256:4240a374d35e5ea9037051559aaae4a8b6414ad5872501d4e240baccaacfff11
diff --git a/build_tools/github_actions/runner/config/systemd/scripts/preload_docker.sh b/build_tools/github_actions/runner/config/systemd/scripts/preload_docker.sh
index db277b4..893154b 100755
--- a/build_tools/github_actions/runner/config/systemd/scripts/preload_docker.sh
+++ b/build_tools/github_actions/runner/config/systemd/scripts/preload_docker.sh
@@ -24,13 +24,3 @@
 # Basically everything uses a derivative of one of these
 grep 'gcr.io/iree-oss/base@' /tmp/prod_digests.txt | xargs docker pull
 grep 'gcr.io/iree-oss/base-bleeding-edge@' /tmp/prod_digests.txt | xargs docker pull
-
-RUNNER_TYPE="$(get_attribute github-runner-type)"
-
-if [[ "${RUNNER_TYPE}" == gpu || "${RUNNER_TYPE}" == a100 ]]; then
-  grep 'gcr.io/iree-oss/nvidia@' /tmp/prod_digests.txt | xargs docker pull
-fi
-
-if [[ "${RUNNER_TYPE}" == a100 ]]; then
-  grep 'gcr.io/iree-oss/nvidia-bleeding-edge@' /tmp/prod_digests.txt | xargs docker pull
-fi
diff --git a/build_tools/github_actions/runner/gcp/image_setup.sh b/build_tools/github_actions/runner/gcp/image_setup.sh
index 40aae53..97ae345 100644
--- a/build_tools/github_actions/runner/gcp/image_setup.sh
+++ b/build_tools/github_actions/runner/gcp/image_setup.sh
@@ -325,9 +325,6 @@
           bash -c "${script_dir}/check_cuda.sh && ${script_dir}/check_vulkan.sh"
     }
 
-    check_docker gcr.io/iree-oss/nvidia@sha256:433e072f075f90fdf07471673626b17091d8d8e2395626f1e6ac6c98803c8807
-    check_docker gcr.io/iree-oss/nvidia-bleeding-edge@sha256:a3b7b78c66c6fe3383b01c7662982c63f708637af1f92a7890b3256c2f178aa7
-
     # Remove the docker images we've fetched. We might want to pre-fetch Docker
     # images into the VM image, but that should be a separate decision.
     docker system prune --force --all
diff --git a/docs/website/docs/developers/general/contributing.md b/docs/website/docs/developers/general/contributing.md
index 186ec2e..2d3ad6c 100644
--- a/docs/website/docs/developers/general/contributing.md
+++ b/docs/website/docs/developers/general/contributing.md
@@ -351,8 +351,9 @@
     mutually exclusive with both "skip" and "extra".
 
     In all these cases, the setup does not make any effort to ensure that job
-    dependencies are satisfied. Thus, if you request skipping the `build_all`
-    job, all the jobs that depend on it will fail, not be skipped.
+    dependencies are satisfied. Thus, if you request skipping the
+    `build_packages` job, all the jobs that depend on it will fail, not be
+    skipped.
 
 ??? info - "Using `runner-env`"
 
@@ -370,16 +371,10 @@
 Copy/paste any of these at the bottom of a PR description to change what the CI
 runs.
 
-* Also run Windows and macOS builds that are normally post-merge only:
+* Also run GPU tests (opt-in due to low availability):
 
     ``` text
-    ci-extra: build_test_all_windows,build_test_all_macos_arm64,build_test_all_macos_x86_64
-    ```
-
-* Also run GPU tests on NVIDIA A100 runners (opt-in due to low availability):
-
-    ``` text
-    ci-extra: test_nvidia_a100
+    ci-extra: test_nvidia_t4,test_amd_mi250,test_amd_mi300,test_amd_w7900
     ```
 
 * Skip all CI builds and tests, e.g. for comment-only changes: