[llvm] Point workflow yaml at new docker image (PR #133359)

George Burgess IV via llvm-commits llvm-commits at lists.llvm.org
Thu May 1 09:33:16 PDT 2025


https://github.com/gburgessiv updated https://github.com/llvm/llvm-project/pull/133359

>From 03e97440389a7fedc0854cf6ca5c589bf45c5ba2 Mon Sep 17 00:00:00 2001
From: George Burgess IV <george.burgess.iv at gmail.com>
Date: Thu, 27 Mar 2025 20:48:47 -0600
Subject: [PATCH 1/2] .github: rely on new llvm-project checkout

This is now baked into the docker images to speed up
premerge cycle times.
---
 .github/workflows/premerge.yaml | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/.github/workflows/premerge.yaml b/.github/workflows/premerge.yaml
index c315ee37646d2..33e874b5004a6 100644
--- a/.github/workflows/premerge.yaml
+++ b/.github/workflows/premerge.yaml
@@ -26,6 +26,11 @@ concurrency:
 jobs:
   premerge-checks-linux:
     name: Linux Premerge Checks (Test Only - Please Ignore Results)
+    defaults:
+      run:
+        # The premerge Linux docker instance keeps a pristine clone of LLVM in
+        # /home/gha/llvm-project; that should be used as our main workdir.
+        working-directory: /home/gha/llvm-project
     if: >-
         github.repository_owner == 'llvm' &&
         (github.event_name != 'pull_request' || github.event.action != 'closed')
@@ -34,7 +39,7 @@ jobs:
       - name: Checkout LLVM
         uses: actions/checkout at 11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
         with:
-          fetch-depth: 2
+          path: /home/gha/llvm-project
       - name: Setup ccache
         uses: hendrikmuhs/ccache-action at a1209f81afb8c005c13b4296c32e363431bffea5 # v1.2.17
         with:

>From 8216c99f717e96c512da468913f5aacb0a219523 Mon Sep 17 00:00:00 2001
From: George Burgess IV <george.burgess.iv at gmail.com>
Date: Thu, 27 Mar 2025 20:49:39 -0600
Subject: [PATCH 2/2] DO NOT COMMIT: tweak premerge to use custom image

For help in testing the prior commit
---
 .github/workflows/premerge.yaml | 148 ++------------------------------
 1 file changed, 8 insertions(+), 140 deletions(-)

diff --git a/.github/workflows/premerge.yaml b/.github/workflows/premerge.yaml
index 33e874b5004a6..e6f2a774be64d 100644
--- a/.github/workflows/premerge.yaml
+++ b/.github/workflows/premerge.yaml
@@ -26,91 +26,19 @@ concurrency:
 jobs:
   premerge-checks-linux:
     name: Linux Premerge Checks (Test Only - Please Ignore Results)
-    defaults:
-      run:
-        # The premerge Linux docker instance keeps a pristine clone of LLVM in
-        # /home/gha/llvm-project; that should be used as our main workdir.
-        working-directory: /home/gha/llvm-project
     if: >-
         github.repository_owner == 'llvm' &&
         (github.event_name != 'pull_request' || github.event.action != 'closed')
-    runs-on: llvm-premerge-linux-runners
+    runs-on: ubuntu-latest
+    container:
+        image: ghcr.io/gburgessiv/llvm-ci-with-checkout:latest
     steps:
-      - name: Checkout LLVM
-        uses: actions/checkout at 11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
-        with:
-          path: /home/gha/llvm-project
-      - name: Setup ccache
-        uses: hendrikmuhs/ccache-action at a1209f81afb8c005c13b4296c32e363431bffea5 # v1.2.17
-        with:
-          max-size: "2000M"
-      - name: Build and Test
-        # Mark the job as a success even if the step fails so that people do
-        # not get notified while the new premerge pipeline is in an
-        # experimental state.
-        # TODO(boomanaiden154): Remove this once the pipeline is stable and we
-        # are ready for people to start recieving notifications.
-        continue-on-error: true
+      - name: Seed LLVM repo
         run: |
-          git config --global --add safe.directory '*'
-
-          source <(git diff --name-only HEAD~1...HEAD | python3 .ci/compute_projects.py)
-
-          if [[ "${projects_to_build}" == "" ]]; then
-            echo "No projects to build"
-            exit 0
-          fi
-
-          echo "Building projects: ${projects_to_build}"
-          echo "Running project checks targets: ${project_check_targets}"
-          echo "Building runtimes: ${runtimes_to_build}"
-          echo "Running runtimes checks targets: ${runtimes_check_targets}"
-
-          export CC=/opt/llvm/bin/clang
-          export CXX=/opt/llvm/bin/clang++
-
-          ./.ci/monolithic-linux.sh "${projects_to_build}" "${project_check_targets}" "${runtimes_to_build}" "${runtimes_check_targets}"
-      - name: Upload Artifacts
-        uses: actions/upload-artifact at 65c4c4a1ddee5b72f698fdd19549f0f0fb45cf08 # v4.6.0
-        with:
-          name: Premerge Artifacts (Linux)
-          path: artifacts/
-          retention-days: 5
-          include-hidden-files: 'true'
-
-  premerge-checks-windows:
-    name: Windows Premerge Checks (Test Only - Please Ignore Results)
-    if: >-
-        github.repository_owner == 'llvm' &&
-        (github.event_name != 'pull_request' || github.event.action != 'closed')
-    runs-on: llvm-premerge-windows-runners
-    defaults:
-      run:
-        shell: bash
-    steps:
+          mv /home/gha/llvm-project "${GITHUB_WORKSPACE}"
+          echo "Successfully moved to ${GITHUB_WORKSPACE}"
       - name: Checkout LLVM
-        uses: actions/checkout at 11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
-        with:
-          fetch-depth: 2
-      - name: Setup ccache
-        uses: hendrikmuhs/ccache-action at a1209f81afb8c005c13b4296c32e363431bffea5 # v1.2.17
-        with:
-          variant: "sccache"
-          max-size: "2000M"
-      - name: Compute Projects
-        id: vars
-        run: |
-          source <(git diff --name-only HEAD~1...HEAD | python .ci/compute_projects.py)
-
-          if [[ "${projects_to_build}" == "" ]]; then
-            echo "No projects to build"
-          fi
-
-          echo "Building projects: ${projects_to_build}"
-          echo "Running project checks targets: ${project_check_targets}"
-
-          echo "windows-projects=${projects_to_build}" >> $GITHUB_OUTPUT
-          echo "windows-check-targets=${project_check_targets}" >> $GITHUB_OUTPUT
+        uses: gburgessiv/checkout at 8c78dc819b7d19a3f246abf55f98e01e451a29cd # v4.2.2
       - name: Build and Test
         # Mark the job as a success even if the step fails so that people do
         # not get notified while the new premerge pipeline is in an
@@ -118,65 +46,5 @@ jobs:
         # TODO(boomanaiden154): Remove this once the pipeline is stable and we
         # are ready for people to start recieving notifications.
         continue-on-error: true
-        if: ${{ steps.vars.outputs.windows-projects != '' }}
-        shell: cmd
-        run: |
-          set MAX_PARALLEL_COMPILE_JOBS=64
-          set MAX_PARALLEL_LINK_JOBS=64
-          call C:\\BuildTools\\Common7\\Tools\\VsDevCmd.bat -arch=amd64 -host_arch=amd64
-          bash .ci/monolithic-windows.sh "${{ steps.vars.outputs.windows-projects }}" "${{ steps.vars.outputs.windows-check-targets }}"
-      - name: Upload Artifacts
-        uses: actions/upload-artifact at 65c4c4a1ddee5b72f698fdd19549f0f0fb45cf08 # v4.6.0
-        with:
-          name: Premerge Artifacts (Windows)
-          path: artifacts/
-          retention-days: 5
-          include-hidden-files: 'true'
-
-  premerge-check-macos:
-    name: MacOS Premerge Checks
-    runs-on: macos-14
-    if: >-
-      github.repository_owner == 'llvm' &&
-      (startswith(github.ref_name, 'release/') ||
-       startswith(github.base_ref, 'release/')) &&
-      (github.event_name != 'pull_request' || github.event.action != 'closed')
-    steps:
-      - name: Checkout LLVM
-        uses: actions/checkout at 11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
-        with:
-          fetch-depth: 2
-      - name: Setup ccache
-        uses: hendrikmuhs/ccache-action at a1209f81afb8c005c13b4296c32e363431bffea5 # v1.2.17
-        with:
-          max-size: "2000M"
-      - name: Install Ninja
-        uses: llvm/actions/install-ninja at main
-      - name: Build and Test
         run: |
-          source <(git diff --name-only HEAD~2..HEAD | python3 .ci/compute_projects.py)
-
-          if [[ "${projects_to_build}" == "" ]]; then
-            echo "No projects to build"
-            exit 0
-          fi
-
-          echo "Building projects: ${projects_to_build}"
-          echo "Running project checks targets: ${project_check_targets}"
-
-          # -DLLVM_DISABLE_ASSEMBLY_FILES=ON is for
-          # https://github.com/llvm/llvm-project/issues/81967
-          # Disable sharding in lit so that the LIT_XFAIL environment var works.
-          cmake -G Ninja \
-                -B build \
-                -S llvm \
-                -DLLVM_ENABLE_PROJECTS="${projects_to_build}" \
-                -DLLVM_DISABLE_ASSEMBLY_FILES=ON \
-                -DCMAKE_BUILD_TYPE=Release \
-                -DLLDB_INCLUDE_TESTS=OFF \
-                -DLLVM_ENABLE_ASSERTIONS=ON \
-                -DCMAKE_C_COMPILER_LAUNCHER=ccache \
-                -DCMAKE_CXX_COMPILER_LAUNCHER=ccache
-
-          # The libcxx tests fail, so we are skipping the runtime targets.
-          ninja -C build ${project_check_targets}
+          exit 1



More information about the llvm-commits mailing list