[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