From 1799d57ffadd2f01c6d4caae7eb635cc51f5562d Mon Sep 17 00:00:00 2001 From: Louis Dionne Date: Fri, 15 Nov 2024 08:36:28 +0100 Subject: [PATCH] [libc++] Add a Github action to build libc++'s Docker images (#110020) This patch adds a Github action that runs whenever changes to the libc++ Docker images are pushed to `main`. The action will rebuild the Docker images and push them to LLVM's container registry so that we can then point to those images from our CI nodes. --- .github/workflows/libcxx-build-containers.yml | 63 +++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 .github/workflows/libcxx-build-containers.yml diff --git a/.github/workflows/libcxx-build-containers.yml b/.github/workflows/libcxx-build-containers.yml new file mode 100644 index 0000000000000..e55a4f2a11b09 --- /dev/null +++ b/.github/workflows/libcxx-build-containers.yml @@ -0,0 +1,63 @@ +# This file defines an action that builds the various Docker images used to run +# libc++ CI whenever modifications to those Docker files are pushed to `main`. +# +# The images are pushed to the LLVM package registry at https://github.com/orgs/llvm/packages +# and tagged appropriately. The selection of which Docker image version is used by the libc++ +# CI nodes at any given point is controlled from the workflow files themselves. + +name: Build Docker images for libc++ CI + +permissions: + contents: read + packages: write + +on: + push: + branches: + - main + paths: + - 'libcxx/utils/ci/**' + - '.github/workflows/libcxx-build-containers.yml' + pull_request: + branches: + - main + paths: + - 'libcxx/utils/ci/**' + - '.github/workflows/libcxx-build-containers.yml' + +jobs: + build-and-push: + runs-on: ubuntu-latest + if: github.repository_owner == 'llvm' + + steps: + - uses: actions/checkout@v4 + + - name: Build the Linux builder image and the Android builder image + working-directory: libcxx/utils/ci + run: + - docker compose build actions-builder + - docker compose build android-buildkite-builder + + - name: Log in to GitHub Container Registry + uses: docker/login-action@v3 + with: + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Push the Linux builder image + if: github.event_name == 'push' + working-directory: libcxx/utils/ci + run: + - docker compose push actions-builder + env: + TAG: libcxx-linux-builder:${{ github.sha }} + + - name: Push the Android builder image + if: github.event_name == 'push' + working-directory: libcxx/utils/ci + run: + - docker compose push android-buildkite-builder + env: + TAG: libcxx-android-builder:${{ github.sha }}