[libcxx] Enable installing new runner binary on existing container

This patch does some refactoring to enable installing a new GHA runner binary
into an existing libcxx image. We achieve this by pushing the base image to the
registry and enabling control over the base image used for building the actions
image. This will always build and push both images even if an existing image is
being used for the actions image, but this should not impact anything as the
SHAs are pinned everywhere and space/build time is not a large concern.

Reviewers: ldionne, EricWF, #reviewers-libcxx

Reviewed By: ldionne

Pull Request: https://github.com/llvm/llvm-project/pull/148073
This commit is contained in:
Aiden Grossman 2025-07-28 12:35:40 -07:00 committed by GitHub
parent 6107e3aa22
commit b33f9f64c7
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 17 additions and 2 deletions

View File

@ -34,7 +34,9 @@ jobs:
- name: Build the Linux builder image
working-directory: libcxx/utils/ci
run: docker compose build actions-builder
run: |
docker compose build builder-base
docker compose build actions-builder
env:
TAG: ${{ github.sha }}
@ -55,6 +57,7 @@ jobs:
if: github.event_name == 'push'
working-directory: libcxx/utils/ci
run: |
docker compose push builder-base
docker compose push actions-builder
env:
TAG: ${{ github.sha }}

View File

@ -38,6 +38,7 @@
# If you're only looking to run the Docker image locally for debugging a
# build bot, see the `run-buildbot-container` script located in this directory.
ARG ACTIONS_BASE_IMAGE
# HACK: We set the base image in the docker-compose file depending on the final target (buildkite vs github actions).
# This means we have a much slower container build, but we can use the same Dockerfile for both targets.
@ -309,7 +310,7 @@ CMD /opt/android/container-setup.sh && buildkite-agent start
#
# IMAGE: ghcr.io/libcxx/actions-builder.
#
FROM builder-base AS actions-builder
FROM $ACTIONS_BASE_IMAGE AS actions-builder
ARG GITHUB_RUNNER_VERSION

View File

@ -3,6 +3,16 @@ x-versions: &compiler_versions
LLVM_HEAD_VERSION: 21
services:
builder-base:
image: ghcr.io/llvm/libcxx-linux-builder-base:${TAG}
build:
context: .
dockerfile: Dockerfile
target: builder-base
args:
BASE_IMAGE: ubuntu:jammy
<<: *compiler_versions
actions-builder:
image: ghcr.io/llvm/libcxx-linux-builder:${TAG}
build:
@ -11,6 +21,7 @@ services:
target: actions-builder
args:
BASE_IMAGE: ubuntu:jammy
ACTIONS_BASE_IMAGE: builder-base
GITHUB_RUNNER_VERSION: "2.326.0"
<<: *compiler_versions