From 82372d7fe69ebd2ace8718b80640a1982e3705f6 Mon Sep 17 00:00:00 2001 From: Tom Stellard Date: Wed, 5 Nov 2025 23:06:01 +0000 Subject: [PATCH 01/13] [GitHub][CI] Factor out duplicate container building code into composite actions --- .../workflows/build-ci-container-tooling.yml | 97 +++++----------- .github/workflows/build-ci-container.yml | 105 +++++------------- .github/workflows/build-container/action.yml | 95 ++++++++++++++++ .github/workflows/push-container/action.yml | 44 ++++++++ 4 files changed, 196 insertions(+), 145 deletions(-) create mode 100644 .github/workflows/build-container/action.yml create mode 100644 .github/workflows/push-container/action.yml diff --git a/.github/workflows/build-ci-container-tooling.yml b/.github/workflows/build-ci-container-tooling.yml index 992947eb2fffb..b2ad69890cb13 100644 --- a/.github/workflows/build-ci-container-tooling.yml +++ b/.github/workflows/build-ci-container-tooling.yml @@ -12,17 +12,29 @@ on: - '.github/workflows/containers/github-action-ci-tooling/**' - llvm/utils/git/requirements_formatting.txt - llvm/utils/git/requirements_linting.txt + - '.github/workflows/build-container/**' + - '.github/workflows/push-container/**' pull_request: paths: - .github/workflows/build-ci-container-tooling.yml - '.github/workflows/containers/github-action-ci-tooling/**' - llvm/utils/git/requirements_formatting.txt - llvm/utils/git/requirements_linting.txt + - '.github/workflows/build-container/**' + - '.github/workflows/push-container/**' jobs: build-ci-container-tooling: if: github.repository_owner == 'llvm' runs-on: ubuntu-24.04 + strategy: + fail-fast: false + matrix: + include: + - container-name: code-format + test-command: 'cd $HOME && clang-format --version | grep version && git-clang-format -h | grep usage && black --version | grep black' + - container-name: code-lint + test-command: 'cd $HOME && clang-tidy --version | grep version && clang-tidy-diff.py -h | grep usage' steps: - name: Checkout LLVM uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 @@ -32,48 +44,16 @@ jobs: llvm/utils/git/requirements_formatting.txt llvm/utils/git/requirements_linting.txt clang-tools-extra/clang-tidy/tool/clang-tidy-diff.py + .github/workflows/build-container - - name: Write Variables - id: vars - run: | - tag=$(git rev-parse --short=12 HEAD) - container_name="ghcr.io/$GITHUB_REPOSITORY_OWNER/amd64/ci-ubuntu-24.04" - echo "container-name-format=$container_name-code-format" >> $GITHUB_OUTPUT - echo "container-name-lint=$container_name-code-lint" >> $GITHUB_OUTPUT - echo "container-name-format-tag=$container_name-format:$tag" >> $GITHUB_OUTPUT - echo "container-name-lint-tag=$container_name-lint:$tag" >> $GITHUB_OUTPUT - echo "container-format-filename=$(echo $container_name-format:$tag | sed -e 's/\//-/g' -e 's/:/-/g').tar" >> $GITHUB_OUTPUT - echo "container-lint-filename=$(echo $container_name-lint:$tag | sed -e 's/\//-/g' -e 's/:/-/g').tar" >> $GITHUB_OUTPUT - - - name: Build container - run: | - podman build --target ci-container-code-format \ - -f .github/workflows/containers/github-action-ci-tooling/Dockerfile \ - -t ${{ steps.vars.outputs.container-name-format-tag }} . - podman build --target ci-container-code-lint \ - -f .github/workflows/containers/github-action-ci-tooling/Dockerfile \ - -t ${{ steps.vars.outputs.container-name-lint-tag }} . - - # Save the container so we have it in case the push fails. This also - # allows us to separate the push step into a different job so we can - # maintain minimal permissions while building the container. - - name: Save container image - run: | - podman save ${{ steps.vars.outputs.container-name-format-tag }} > ${{ steps.vars.outputs.container-format-filename }} - podman save ${{ steps.vars.outputs.container-name-lint-tag }} > ${{ steps.vars.outputs.container-lint-filename }} - - - name: Upload container image - uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2 + - name: Build Container + uses: ./.github/workflows/build-container with: - name: container-amd64 - path: "*.tar" - retention-days: 14 - - - name: Test Container - run: | - # Use --pull=never to ensure we are testing the just built image. - podman run --pull=never --rm -it ${{ steps.vars.outputs.container-name-format-tag }} /usr/bin/bash -x -c 'cd $HOME && clang-format --version | grep version && git-clang-format -h | grep usage && black --version | grep black' - podman run --pull=never --rm -it ${{ steps.vars.outputs.container-name-lint-tag }} /usr/bin/bash -x -c 'cd $HOME && clang-tidy --version | grep version && clang-tidy-diff.py -h | grep usage' + container-name: ci-ubuntu-24.04-${{ matrix.container-name }} + context: .github/workflows/containers/github-action-ci/ + dockerfile: .github/workflows/containers/github-action-ci/Dockerfile + target: ci-container-${{ matrix.container-name }} + test-command: ${{ matrix.test-command }} push-ci-container: if: github.event_name == 'push' @@ -82,34 +62,13 @@ jobs: permissions: packages: write runs-on: ubuntu-24.04 - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} steps: - - name: Download container - uses: actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5.0.0 - - - name: Push Container - run: | - function push_container { - image_name=$1 - latest_name=$(echo $image_name | sed 's/:[a-f0-9]\+$/:latest/g') - podman tag $image_name $latest_name - echo "Pushing $image_name ..." - podman push $image_name - echo "Pushing $latest_name ..." - podman push $latest_name - } - - podman login -u ${{ github.actor }} -p $GITHUB_TOKEN ghcr.io - for f in $(find . -iname '*.tar'); do - image_name=$(podman load -q -i $f | sed 's/Loaded image: //g') - push_container $image_name + - name: Checkout LLVM + uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 + with: + sparse-checkout: | + .github/workflows/push-container - if echo $image_name | grep '/amd64/'; then - # For amd64, create an alias with the arch component removed. - # This matches the convention used on dockerhub. - default_image_name=$(echo $(dirname $(dirname $image_name))/$(basename $image_name)) - podman tag $image_name $default_image_name - push_container $default_image_name - fi - done + - uses: ./.github/workflows/push-container + with: + token: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/build-ci-container.yml b/.github/workflows/build-ci-container.yml index 027c558afdd0b..2b7276a7d3d5b 100644 --- a/.github/workflows/build-ci-container.yml +++ b/.github/workflows/build-ci-container.yml @@ -10,10 +10,14 @@ on: paths: - .github/workflows/build-ci-container.yml - '.github/workflows/containers/github-action-ci/**' + - '.github/workflows/build-container/**' + - '.github/workflows/push-container/**' pull_request: paths: - .github/workflows/build-ci-container.yml - '.github/workflows/containers/github-action-ci/**' + - '.github/workflows/build-container/**' + - '.github/workflows/push-container/**' jobs: build-ci-container: @@ -21,61 +25,29 @@ jobs: runs-on: ${{ matrix.runs-on }} strategy: matrix: - include: - # The arch names should match the names used on dockerhub. - # See https://github.com/docker-library/official-images#architectures-other-than-amd64 - - arch: amd64 - runs-on: depot-ubuntu-24.04-16 - - arch: arm64v8 - runs-on: depot-ubuntu-24.04-arm-16 + runs-on: + - depot-ubuntu-24.04-16 + - depot-ubuntu-24.04-arm-16 + container-name: + - '' + - agent + test-command: + - 'cd $HOME && printf '\''#include \nint main(int argc, char **argv) { std::cout << "Hello\\n"; }'\'' | clang++ -x c++ - && ./a.out | grep Hello' steps: - name: Checkout LLVM uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 with: - sparse-checkout: .github/workflows/containers/github-action-ci/ - # podman is not installed by default on the ARM64 images. - - name: Install Podman - if: runner.arch == 'ARM64' - run: | - sudo apt-get install podman - - name: Write Variables - id: vars - run: | - tag=$(git rev-parse --short=12 HEAD) - container_name="ghcr.io/$GITHUB_REPOSITORY_OWNER/${{ matrix.arch }}/ci-ubuntu-24.04" - echo "container-name=$container_name" >> $GITHUB_OUTPUT - echo "container-name-agent=$container_name-agent" >> $GITHUB_OUTPUT - echo "container-name-tag=$container_name:$tag" >> $GITHUB_OUTPUT - echo "container-name-agent-tag=$container_name-agent:$tag" >> $GITHUB_OUTPUT - echo "container-filename=$(echo $container_name:$tag | sed -e 's/\//-/g' -e 's/:/-/g').tar" >> $GITHUB_OUTPUT - echo "container-agent-filename=$(echo $container_name-agent:$tag | sed -e 's/\//-/g' -e 's/:/-/g').tar" >> $GITHUB_OUTPUT - - name: Build container - working-directory: ./.github/workflows/containers/github-action-ci/ - run: | - podman build --target ci-container -t ${{ steps.vars.outputs.container-name-tag }} . - podman build --target ci-container-agent -t ${{ steps.vars.outputs.container-name-agent-tag }} . + sparse-checkout: | + .github/workflows/containers/github-action-ci/ + .github/workflows/build-container - # Save the container so we have it in case the push fails. This also - # allows us to separate the push step into a different job so we can - # maintain minimal permissions while building the container. - - name: Save container image - run: | - podman save ${{ steps.vars.outputs.container-name-tag }} > ${{ steps.vars.outputs.container-filename }} - podman save ${{ steps.vars.outputs.container-name-agent-tag }} > ${{ steps.vars.outputs.container-agent-filename }} - - - name: Upload container image - uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2 + - name: Build Container + uses: ./.github/workflows/build-container with: - name: container-${{ matrix.arch }} - path: "*.tar" - retention-days: 14 - - - name: Test Container - run: | - for image in ${{ steps.vars.outputs.container-name-tag }}; do - # Use --pull=never to ensure we are testing the just built image. - podman run --pull=never --rm -it $image /usr/bin/bash -x -c 'cd $HOME && printf '\''#include \nint main(int argc, char **argv) { std::cout << "Hello\\n"; }'\'' | clang++ -x c++ - && ./a.out | grep Hello' - done + container-name: ci-ubuntu-24.04-${{ matrix.container-name }} + dockerfile: .github/workflows/containers/github-action-ci-tooling/Dockerfile + target: ci-container${{ matrix.container-name && format('-{0}', matrix.container-name) }} + test-command: ${{ matrix.test-command }} push-ci-container: if: github.event_name == 'push' @@ -87,31 +59,12 @@ jobs: env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} steps: - - name: Download container - uses: actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5.0.0 - - - name: Push Container - run: | - function push_container { - image_name=$1 - latest_name=$(echo $image_name | sed 's/:[a-f0-9]\+$/:latest/g') - podman tag $image_name $latest_name - echo "Pushing $image_name ..." - podman push $image_name - echo "Pushing $latest_name ..." - podman push $latest_name - } - - podman login -u ${{ github.actor }} -p $GITHUB_TOKEN ghcr.io - for f in $(find . -iname '*.tar'); do - image_name=$(podman load -q -i $f | sed 's/Loaded image: //g') - push_container $image_name + - name: Checkout LLVM + uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 + with: + sparse-checkout: | + .github/workflows/push-container - if echo $image_name | grep '/amd64/'; then - # For amd64, create an alias with the arch component removed. - # This matches the convention used on dockerhub. - default_image_name=$(echo $(dirname $(dirname $image_name))/$(basename $image_name)) - podman tag $image_name $default_image_name - push_container $default_image_name - fi - done + - uses: ./.github/workflows/push-container + with: + token: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/build-container/action.yml b/.github/workflows/build-container/action.yml new file mode 100644 index 0000000000000..c25fc41589047 --- /dev/null +++ b/.github/workflows/build-container/action.yml @@ -0,0 +1,95 @@ +name: Build Container +description: >- + Build and test a container using the standard llvm naming scheme for containers. + +inputs: + tag: + description: >- + The tag to use for this container. + required: false + container-name: + description: >- + The name for the container. + required: true + dockerfile: + description: >- + Path to docker file. + required: false + target: + description: >- + The container target to build 'passed to podman via ---target option' + required: false + context: + description: >- + Path to context for the container build. + required: false + test-command: + description: >- + Test command to run to ensure the container is working correctly. + required: false + +runs: + using: "composite" + steps: + # podman is not installed by default on the ARM64 images. + - name: Install Podman + if: runner.arch == 'ARM64' + shell: bash + run: | + sudo apt-get install podman + + - name: Build Container + shell: bash + env: + INPUT_TAG: ${{inputs.tag }} + INPUT_CONTAINER_NAME: ${{ inputs.container-name }} + INPUT_TARGET: ${{ inputs.target }} + INPUT_DOCKERFILE: ${{ inputs.dockerfile }} + INPUT_CONTEXT: ${{ inputs.context }} + id: build + run: | + env + tag="${INPUT_TAG:-$(git rev-parse --short=12 HEAD)}" + + case "$RUNNER_ARCH" in + ARM64) + container_arch="arm64v8" + ;; + *) + container_arch="amd64" + ;; + esac + + container_name="ghcr.io/$GITHUB_REPOSITORY_OWNER/$container_arch/$INPUT_CONTAINER_NAME:$tag" + container_filename="$(echo $container_name | sed -e 's/\//-/g' -e 's/:/-/g').tar" + if [ -n "$INPUT_TARGET" ]; then + podman_options="$podman_options --target $INPUT_TARGET" + fi + if [ -n "$INPUT_DOCKERFILE" ]; then + podman_options="$podman_options -f $INPUT_DOCKERFILE" + fi + podman_options="$podman_options ${INPUT_CONTEXT:-.}" + echo "Podman Options: $podman_options" + + podman build -t $container_name $podman_options + + podman save $container_name > $container_filename + + echo "container-full-name=$container_name" >> $GITHUB_OUTPUT + + - name: Create container artifact + uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2 + with: + name: ${{ inputs.container-name }}-${{ runner.arch }} + path: "*.tar" + retention-days: 14 + + - name: Test container + shell: bash + if: inputs.test-command + env: + INPUT_TEST_COMMAND: ${{ inputs.test-command }} + CONTAINER_FULL_NAME: ${{ steps.build.outputs.container-full-name }} + run: | + podman run --pull=never --rm -it $CONTAINER_FULL_NAME /usr/bin/bash -x -c "$INPUT_TEST_COMMAND" + diff --git a/.github/workflows/push-container/action.yml b/.github/workflows/push-container/action.yml new file mode 100644 index 0000000000000..9f02d1ea205f1 --- /dev/null +++ b/.github/workflows/push-container/action.yml @@ -0,0 +1,44 @@ +name: Push Container +description: >- + Download all container artifacts for this job and push them to the GitHub registry. + +inputs: + token: + description: >- + Token to use to authenticate with the container registry. + required: true + +runs: + using: "composite" + steps: + - name: Download container + uses: actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5.0.0 + + - name: Push Container + env: + GITHUB_TOKEN: ${{ inputs.token }} + shell: bash + run: | + function push_container { + image_name=$1 + latest_name=$(echo $image_name | sed 's/:[a-f0-9]\+$/:latest/g') + podman tag $image_name $latest_name + echo "Pushing $image_name ..." + podman push $image_name + echo "Pushing $latest_name ..." + podman push $latest_name + } + + podman login -u ${{ github.actor }} -p $GITHUB_TOKEN ghcr.io + for f in $(find . -iname '*.tar'); do + image_name=$(podman load -q -i $f | sed 's/Loaded image: //g') + push_container $image_name + + if echo $image_name | grep '/amd64/'; then + # For amd64, create an alias with the arch component removed. + # This matches the convention used on dockerhub. + default_image_name=$(echo $(dirname $(dirname $image_name))/$(basename $image_name)) + podman tag $image_name $default_image_name + push_container $default_image_name + fi + done From 001b8c4237a768c380b6781d067f2e0de134a07a Mon Sep 17 00:00:00 2001 From: Tom Stellard Date: Wed, 5 Nov 2025 23:11:32 +0000 Subject: [PATCH 02/13] Fix copy paste error --- .github/workflows/build-ci-container-tooling.yml | 3 +-- .github/workflows/build-ci-container.yml | 3 ++- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build-ci-container-tooling.yml b/.github/workflows/build-ci-container-tooling.yml index b2ad69890cb13..040cae52854fa 100644 --- a/.github/workflows/build-ci-container-tooling.yml +++ b/.github/workflows/build-ci-container-tooling.yml @@ -50,8 +50,7 @@ jobs: uses: ./.github/workflows/build-container with: container-name: ci-ubuntu-24.04-${{ matrix.container-name }} - context: .github/workflows/containers/github-action-ci/ - dockerfile: .github/workflows/containers/github-action-ci/Dockerfile + dockerfile: .github/workflows/containers/github-action-ci-tooling/Dockerfile target: ci-container-${{ matrix.container-name }} test-command: ${{ matrix.test-command }} diff --git a/.github/workflows/build-ci-container.yml b/.github/workflows/build-ci-container.yml index 2b7276a7d3d5b..4cdfad866004d 100644 --- a/.github/workflows/build-ci-container.yml +++ b/.github/workflows/build-ci-container.yml @@ -45,7 +45,8 @@ jobs: uses: ./.github/workflows/build-container with: container-name: ci-ubuntu-24.04-${{ matrix.container-name }} - dockerfile: .github/workflows/containers/github-action-ci-tooling/Dockerfile + context: .github/workflows/containers/github-action-ci/ + dockerfile: .github/workflows/containers/github-action-ci/Dockerfile target: ci-container${{ matrix.container-name && format('-{0}', matrix.container-name) }} test-command: ${{ matrix.test-command }} From dd4893bf199381ef8ca9b292c6549574085742bc Mon Sep 17 00:00:00 2001 From: Tom Stellard Date: Thu, 6 Nov 2025 00:07:04 +0000 Subject: [PATCH 03/13] Fix string in build-ci-container --- .github/workflows/build-ci-container.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-ci-container.yml b/.github/workflows/build-ci-container.yml index 4cdfad866004d..cfbeebaea80ed 100644 --- a/.github/workflows/build-ci-container.yml +++ b/.github/workflows/build-ci-container.yml @@ -32,7 +32,7 @@ jobs: - '' - agent test-command: - - 'cd $HOME && printf '\''#include \nint main(int argc, char **argv) { std::cout << "Hello\\n"; }'\'' | clang++ -x c++ - && ./a.out | grep Hello' + - cd $HOME && printf '\''#include \nint main(int argc, char **argv) { std::cout << "Hello\\n"; }'\'' | clang++ -x c++ - && ./a.out | grep Hello steps: - name: Checkout LLVM uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 From e2fe1fbe066dd797f5ee52a2639073dd033f31be Mon Sep 17 00:00:00 2001 From: Tom Stellard Date: Thu, 6 Nov 2025 00:10:22 +0000 Subject: [PATCH 04/13] Fix container name --- .github/workflows/build-ci-container.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-ci-container.yml b/.github/workflows/build-ci-container.yml index cfbeebaea80ed..8eb394d8849b0 100644 --- a/.github/workflows/build-ci-container.yml +++ b/.github/workflows/build-ci-container.yml @@ -44,7 +44,7 @@ jobs: - name: Build Container uses: ./.github/workflows/build-container with: - container-name: ci-ubuntu-24.04-${{ matrix.container-name }} + container-name: ci-ubuntu-24.04-${{ matrix.container-name && format('-{0}', matrix.container-name)}} context: .github/workflows/containers/github-action-ci/ dockerfile: .github/workflows/containers/github-action-ci/Dockerfile target: ci-container${{ matrix.container-name && format('-{0}', matrix.container-name) }} From 54b81924e60baa5a966e8e4041e91991638b95b6 Mon Sep 17 00:00:00 2001 From: Tom Stellard Date: Thu, 6 Nov 2025 00:15:20 +0000 Subject: [PATCH 05/13] Fix container name again --- .github/workflows/build-ci-container.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-ci-container.yml b/.github/workflows/build-ci-container.yml index 8eb394d8849b0..68e8e5ccbb904 100644 --- a/.github/workflows/build-ci-container.yml +++ b/.github/workflows/build-ci-container.yml @@ -44,7 +44,7 @@ jobs: - name: Build Container uses: ./.github/workflows/build-container with: - container-name: ci-ubuntu-24.04-${{ matrix.container-name && format('-{0}', matrix.container-name)}} + container-name: ci-ubuntu-24.04${{ matrix.container-name && format('-{0}', matrix.container-name)}} context: .github/workflows/containers/github-action-ci/ dockerfile: .github/workflows/containers/github-action-ci/Dockerfile target: ci-container${{ matrix.container-name && format('-{0}', matrix.container-name) }} From 24783974ab7ececcef9e87c1d2eedda478c076cb Mon Sep 17 00:00:00 2001 From: Tom Stellard Date: Thu, 6 Nov 2025 02:48:03 +0000 Subject: [PATCH 06/13] Fix printf --- .github/workflows/build-ci-container.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-ci-container.yml b/.github/workflows/build-ci-container.yml index 68e8e5ccbb904..5ef28dcac8b21 100644 --- a/.github/workflows/build-ci-container.yml +++ b/.github/workflows/build-ci-container.yml @@ -32,7 +32,7 @@ jobs: - '' - agent test-command: - - cd $HOME && printf '\''#include \nint main(int argc, char **argv) { std::cout << "Hello\\n"; }'\'' | clang++ -x c++ - && ./a.out | grep Hello + - cd $HOME && printf '#include \nint main(int argc, char **argv) { std::cout << "Hello\\n"; }' | clang++ -x c++ - && ./a.out | grep Hello steps: - name: Checkout LLVM uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 From b8394d871905759e388708b94c940b88da02e327 Mon Sep 17 00:00:00 2001 From: Tom Stellard Date: Thu, 6 Nov 2025 02:48:53 +0000 Subject: [PATCH 07/13] Fix test command --- .github/workflows/build-ci-container-tooling.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-ci-container-tooling.yml b/.github/workflows/build-ci-container-tooling.yml index 040cae52854fa..455211023cea0 100644 --- a/.github/workflows/build-ci-container-tooling.yml +++ b/.github/workflows/build-ci-container-tooling.yml @@ -34,7 +34,7 @@ jobs: - container-name: code-format test-command: 'cd $HOME && clang-format --version | grep version && git-clang-format -h | grep usage && black --version | grep black' - container-name: code-lint - test-command: 'cd $HOME && clang-tidy --version | grep version && clang-tidy-diff.py -h | grep usage' + test-command: cd $HOME && printf '#include \nint main(int argc, char **argv) { std::cout << "Hello\\n"; }' | clang++ -x c++ - && ./a.out | grep Hello steps: - name: Checkout LLVM uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 From 448f7fdae2ecc19a8f1b00209384228a4745f8fe Mon Sep 17 00:00:00 2001 From: Tom Stellard Date: Thu, 6 Nov 2025 02:58:32 +0000 Subject: [PATCH 08/13] Undo test --- .github/workflows/build-ci-container-tooling.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-ci-container-tooling.yml b/.github/workflows/build-ci-container-tooling.yml index 455211023cea0..040cae52854fa 100644 --- a/.github/workflows/build-ci-container-tooling.yml +++ b/.github/workflows/build-ci-container-tooling.yml @@ -34,7 +34,7 @@ jobs: - container-name: code-format test-command: 'cd $HOME && clang-format --version | grep version && git-clang-format -h | grep usage && black --version | grep black' - container-name: code-lint - test-command: cd $HOME && printf '#include \nint main(int argc, char **argv) { std::cout << "Hello\\n"; }' | clang++ -x c++ - && ./a.out | grep Hello + test-command: 'cd $HOME && clang-tidy --version | grep version && clang-tidy-diff.py -h | grep usage' steps: - name: Checkout LLVM uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 From d06a65bab496a6bd620d7b84d904d67f9d61de6e Mon Sep 17 00:00:00 2001 From: Tom Stellard Date: Thu, 6 Nov 2025 18:20:35 +0000 Subject: [PATCH 09/13] Fix names --- .github/workflows/build-ci-container-tooling.yml | 1 + .github/workflows/build-ci-container.yml | 1 + 2 files changed, 2 insertions(+) diff --git a/.github/workflows/build-ci-container-tooling.yml b/.github/workflows/build-ci-container-tooling.yml index 040cae52854fa..46dc38fe600a3 100644 --- a/.github/workflows/build-ci-container-tooling.yml +++ b/.github/workflows/build-ci-container-tooling.yml @@ -25,6 +25,7 @@ on: jobs: build-ci-container-tooling: + name: Build Container ${{ matrix.container-name }} if: github.repository_owner == 'llvm' runs-on: ubuntu-24.04 strategy: diff --git a/.github/workflows/build-ci-container.yml b/.github/workflows/build-ci-container.yml index 5ef28dcac8b21..296a096be9b9f 100644 --- a/.github/workflows/build-ci-container.yml +++ b/.github/workflows/build-ci-container.yml @@ -21,6 +21,7 @@ on: jobs: build-ci-container: + name: Build Container ${{ matrix.container-name }} if: github.repository_owner == 'llvm' runs-on: ${{ matrix.runs-on }} strategy: From ebb390222a94a0e639599b988bf99f8e8d50bdbf Mon Sep 17 00:00:00 2001 From: Tom Stellard Date: Thu, 6 Nov 2025 18:26:18 +0000 Subject: [PATCH 10/13] Add arch to container name display --- .github/workflows/build-ci-container.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-ci-container.yml b/.github/workflows/build-ci-container.yml index 296a096be9b9f..a1d94c13369cc 100644 --- a/.github/workflows/build-ci-container.yml +++ b/.github/workflows/build-ci-container.yml @@ -21,7 +21,7 @@ on: jobs: build-ci-container: - name: Build Container ${{ matrix.container-name }} + name: Build Container ${{ matrix.container-name }} ${{ runner.arch }} if: github.repository_owner == 'llvm' runs-on: ${{ matrix.runs-on }} strategy: From c16bb9fb08be624d9a47cc4b5b3b4e44f423be48 Mon Sep 17 00:00:00 2001 From: Tom Stellard Date: Thu, 6 Nov 2025 18:27:46 +0000 Subject: [PATCH 11/13] Fix name string --- .github/workflows/build-ci-container.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-ci-container.yml b/.github/workflows/build-ci-container.yml index a1d94c13369cc..024d53f298671 100644 --- a/.github/workflows/build-ci-container.yml +++ b/.github/workflows/build-ci-container.yml @@ -21,7 +21,7 @@ on: jobs: build-ci-container: - name: Build Container ${{ matrix.container-name }} ${{ runner.arch }} + name: Build Container ${{ matrix.container-name }} ${{ matrix.runs-on }} if: github.repository_owner == 'llvm' runs-on: ${{ matrix.runs-on }} strategy: From 29033baff40e88e2e42f69f1a9f46563c39ce892 Mon Sep 17 00:00:00 2001 From: Tom Stellard Date: Thu, 6 Nov 2025 18:29:37 +0000 Subject: [PATCH 12/13] Fix name string --- .github/workflows/build-ci-container.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-ci-container.yml b/.github/workflows/build-ci-container.yml index 024d53f298671..e4076e544a3d8 100644 --- a/.github/workflows/build-ci-container.yml +++ b/.github/workflows/build-ci-container.yml @@ -21,7 +21,7 @@ on: jobs: build-ci-container: - name: Build Container ${{ matrix.container-name }} ${{ matrix.runs-on }} + name: Build Container ${{ matrix.container-name }} ${{ (contains(matrix.runs-on, "arm") && "ARM64") || "X64" }} if: github.repository_owner == 'llvm' runs-on: ${{ matrix.runs-on }} strategy: From 352660239caaa02c299806b9b385f4d6e8306f64 Mon Sep 17 00:00:00 2001 From: Tom Stellard Date: Thu, 6 Nov 2025 18:30:50 +0000 Subject: [PATCH 13/13] Fix name string --- .github/workflows/build-ci-container.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-ci-container.yml b/.github/workflows/build-ci-container.yml index e4076e544a3d8..33b4dda2b2980 100644 --- a/.github/workflows/build-ci-container.yml +++ b/.github/workflows/build-ci-container.yml @@ -21,7 +21,7 @@ on: jobs: build-ci-container: - name: Build Container ${{ matrix.container-name }} ${{ (contains(matrix.runs-on, "arm") && "ARM64") || "X64" }} + name: Build Container ${{ matrix.container-name }} ${{ (contains(matrix.runs-on, 'arm') && 'ARM64') || 'X64' }} if: github.repository_owner == 'llvm' runs-on: ${{ matrix.runs-on }} strategy: