From 6860faf0d71cc098fcbed23787c3f42c94901a4e Mon Sep 17 00:00:00 2001 From: ephraimduncan Date: Fri, 6 Nov 2026 11:53:25 +0000 Subject: [PATCH] ci: build the base images on GitHub-hosted runners The image builds use ubuntu-24.04 for amd64 and ubuntu-24.04-arm for arm64 again, and the merge job uses ubuntu-24.04. At this time, no runplane runner starts the jobs of this repository. Thus each image build stayed in the queue, and GHCR has no images with rustup. Each build runs on a runner of its own architecture, thus the workflow does not need QEMU. --- .github/workflows/images.yml | 10 +++++----- README.md | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/images.yml b/.github/workflows/images.yml index 57964f1..a88cfcd 100644 --- a/.github/workflows/images.yml +++ b/.github/workflows/images.yml @@ -4,8 +4,9 @@ # must name the images and the build args of images/images.go # (images_test.go compares them). # -# The builds use the runplane runners. QEMU builds the architecture that the -# runner does not have, which makes that build much slower. +# The arm64 builds use the ubuntu-24.04-arm runners. For a private repository +# without these runners, change the runner to ubuntu-24.04 and add +# docker/setup-qemu-action (the arm64 build is then much slower). # # The build context is the images folder, and images/.dockerignore keeps # only the Dockerfile in it. A change to images.go, its test, or the README @@ -35,7 +36,7 @@ jobs: - {name: ubuntu-24.04, ubuntu: '24.04', image_os: ubuntu24} - {name: ubuntu-26.04, ubuntu: '26.04', image_os: ubuntu26} arch: [amd64, arm64] - runs-on: runplane + runs-on: ${{ matrix.arch == 'arm64' && 'ubuntu-24.04-arm' || 'ubuntu-24.04' }} permissions: contents: read packages: write @@ -43,7 +44,6 @@ jobs: - uses: actions/checkout@v7 - name: Image name run: echo "IMAGE=ghcr.io/${GITHUB_REPOSITORY,,}/runner-${{ matrix.image.name }}" >> "$GITHUB_ENV" - - uses: docker/setup-qemu-action@v4 - uses: docker/setup-buildx-action@v4 - uses: docker/login-action@v4 if: github.event_name != 'pull_request' @@ -97,7 +97,7 @@ jobs: strategy: matrix: image: [ubuntu-24.04, ubuntu-26.04] - runs-on: runplane + runs-on: ubuntu-24.04 permissions: contents: read packages: write diff --git a/README.md b/README.md index f6f2c5d..70f868d 100644 --- a/README.md +++ b/README.md @@ -321,4 +321,4 @@ A person who can change the release files can also change the `install.sh` of th **Caution:** Do not change the key after the first release. A binary with the earlier key cannot do a self-update to a release with a new key. On these servers, run the install command of the new release again. -The `images.yml` workflow pushes the base images to GHCR each week and after each change of `images/Dockerfile`. The builds use the `runplane` label. QEMU builds the architecture that the runner does not have. After the first push, set the visibility of each image package on GHCR to public. Then servers pull the base images without a login, and VM mode does not need Docker. To do a check, run `docker logout ghcr.io && docker pull ghcr.io///runner-ubuntu-24.04:latest`. +The `images.yml` workflow pushes the base images to GHCR each week and after each change of `images/Dockerfile`. The arm64 images use the `ubuntu-24.04-arm` runners of GitHub. After the first push, set the visibility of each image package on GHCR to public. Then servers pull the base images without a login, and VM mode does not need Docker. To do a check, run `docker logout ghcr.io && docker pull ghcr.io///runner-ubuntu-24.04:latest`.