-
Notifications
You must be signed in to change notification settings - Fork 12.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
release/20.x: workflows/premerge: Add macOS testing for release branch (#124303) #125161
Conversation
@boomanaiden154 What do you think about merging this PR to the release branch? |
@llvm/pr-subscribers-github-workflow Author: None (llvmbot) ChangesBackport b89617d Requested by: @tstellar Full diff: https://github.com/llvm/llvm-project/pull/125161.diff 6 Files Affected:
diff --git a/.github/workflows/clang-tests.yml b/.github/workflows/clang-tests.yml
deleted file mode 100644
index 2569ce19518e3e3..000000000000000
--- a/.github/workflows/clang-tests.yml
+++ /dev/null
@@ -1,38 +0,0 @@
-name: Clang Tests
-
-permissions:
- contents: read
-
-on:
- workflow_dispatch:
- push:
- branches:
- - 'release/**'
- paths:
- - 'clang/**'
- - '.github/workflows/clang-tests.yml'
- - '.github/workflows/llvm-project-tests.yml'
- - '!llvm/**'
- pull_request:
- branches:
- - 'release/**'
- paths:
- - 'clang/**'
- - '.github/workflows/clang-tests.yml'
- - '.github/workflows/llvm-project-tests.yml'
- - '!llvm/**'
-
-concurrency:
- # Skip intermediate builds: always.
- # Cancel intermediate builds: only if it is a pull request build.
- group: ${{ github.workflow }}-${{ github.ref }}
- cancel-in-progress: ${{ startsWith(github.ref, 'refs/pull/') }}
-
-jobs:
- check_clang:
- if: github.repository_owner == 'llvm'
- name: Test clang,lldb,libclc
- uses: ./.github/workflows/llvm-project-tests.yml
- with:
- build_target: check-clang
- projects: clang;lldb;libclc
diff --git a/.github/workflows/libclc-tests.yml b/.github/workflows/libclc-tests.yml
deleted file mode 100644
index 23192f776a985e1..000000000000000
--- a/.github/workflows/libclc-tests.yml
+++ /dev/null
@@ -1,39 +0,0 @@
-name: libclc Tests
-
-permissions:
- contents: read
-
-on:
- workflow_dispatch:
- push:
- branches:
- - 'release/**'
- paths:
- - 'libclc/**'
- - '.github/workflows/libclc-tests.yml'
- - '.github/workflows/llvm-project-tests.yml'
- - '!clang/**'
- - '!llvm/**'
- pull_request:
- branches:
- - 'release/**'
- paths:
- - 'libclc/**'
- - '.github/workflows/libclc-tests.yml'
- - '.github/workflows/llvm-project-tests.yml'
- - '!clang/**'
- - '!llvm/**'
-
-concurrency:
- # Skip intermediate builds: always.
- # Cancel intermediate builds: only if it is a pull request build.
- group: ${{ github.workflow }}-${{ github.ref }}
- cancel-in-progress: ${{ startsWith(github.ref, 'refs/pull/') }}
-
-jobs:
- check_libclc:
- if: github.repository_owner == 'llvm'
- name: Test libclc
- uses: ./.github/workflows/llvm-project-tests.yml
- with:
- projects: clang;libclc
diff --git a/.github/workflows/lld-tests.yml b/.github/workflows/lld-tests.yml
deleted file mode 100644
index 599c0975fa68586..000000000000000
--- a/.github/workflows/lld-tests.yml
+++ /dev/null
@@ -1,38 +0,0 @@
-name: LLD Tests
-
-permissions:
- contents: read
-
-on:
- workflow_dispatch:
- push:
- branches:
- - 'release/**'
- paths:
- - 'lld/**'
- - '.github/workflows/lld-tests.yml'
- - '.github/workflows/llvm-project-tests.yml'
- - '!llvm/**'
- pull_request:
- branches:
- - 'release/**'
- paths:
- - 'lld/**'
- - '.github/workflows/lld-tests.yml'
- - '.github/workflows/llvm-project-tests.yml'
- - '!llvm/**'
-
-concurrency:
- # Skip intermediate builds: always.
- # Cancel intermediate builds: only if it is a pull request build.
- group: ${{ github.workflow }}-${{ github.ref }}
- cancel-in-progress: ${{ startsWith(github.ref, 'refs/pull/') }}
-
-jobs:
- check_lld:
- if: github.repository_owner == 'llvm'
- name: Test lld
- uses: ./.github/workflows/llvm-project-tests.yml
- with:
- build_target: check-lld
- projects: lld
diff --git a/.github/workflows/lldb-tests.yml b/.github/workflows/lldb-tests.yml
deleted file mode 100644
index 6bb9721956258f1..000000000000000
--- a/.github/workflows/lldb-tests.yml
+++ /dev/null
@@ -1,39 +0,0 @@
-name: lldb Tests
-
-permissions:
- contents: read
-
-on:
- workflow_dispatch:
- push:
- branches:
- - 'release/**'
- paths:
- - 'lldb/**'
- - '.github/workflows/lldb-tests.yml'
- - '.github/workflows/llvm-project-tests.yml'
- - '!clang/**'
- - '!llvm/**'
- pull_request:
- branches:
- - 'release/**'
- paths:
- - 'lldb/**'
- - '.github/workflows/lldb-tests.yml'
- - '.github/workflows/llvm-project-tests.yml'
- - '!clang/**'
- - '!llvm/**'
-
-concurrency:
- # Skip intermediate builds: always.
- # Cancel intermediate builds: only if it is a pull request build.
- group: ${{ github.workflow }}-${{ github.ref }}
- cancel-in-progress: ${{ startsWith(github.ref, 'refs/pull/') }}
-
-jobs:
- build_lldb:
- if: github.repository_owner == 'llvm'
- name: Build lldb
- uses: ./.github/workflows/llvm-project-tests.yml
- with:
- projects: clang;lldb
diff --git a/.github/workflows/llvm-tests.yml b/.github/workflows/llvm-tests.yml
index 4e570a7cb145500..9b3d49d4e99b93b 100644
--- a/.github/workflows/llvm-tests.yml
+++ b/.github/workflows/llvm-tests.yml
@@ -11,14 +11,12 @@ on:
paths:
- 'llvm/**'
- '.github/workflows/llvm-tests.yml'
- - '.github/workflows/llvm-project-tests.yml'
pull_request:
branches:
- 'release/**'
paths:
- 'llvm/**'
- '.github/workflows/llvm-tests.yml'
- - '.github/workflows/llvm-project-tests.yml'
concurrency:
# Skip intermediate builds: always.
@@ -27,14 +25,6 @@ concurrency:
cancel-in-progress: ${{ startsWith(github.ref, 'refs/pull/') }}
jobs:
- check-all:
- if: github.repository_owner == 'llvm'
- name: Build and Test
- uses: ./.github/workflows/llvm-project-tests.yml
- with:
- build_target: check-all
- projects: clang;lld;libclc;lldb
-
abi-dump-setup:
if: github.repository_owner == 'llvm'
runs-on: ubuntu-latest
diff --git a/.github/workflows/premerge.yaml b/.github/workflows/premerge.yaml
index 54d6e1bf092cfb5..d7fa67188218614 100644
--- a/.github/workflows/premerge.yaml
+++ b/.github/workflows/premerge.yaml
@@ -10,6 +10,7 @@ on:
push:
branches:
- 'main'
+ - 'release/**'
jobs:
premerge-checks-linux:
@@ -132,3 +133,72 @@ jobs:
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 }}"
+ permerge-check-macos:
+ runs-on: macos-14
+ concurrency:
+ group: ${{ github.workflow }}-macos-${{ github.event.pull_request.number || github.sha }}
+ cancel-in-progress: true
+ if: >-
+ (startswith(github.ref_name, 'release/') ||
+ startswith(github.base_ref, 'refs/heads/release/'))
+ steps:
+ - name: Checkout LLVM
+ uses: actions/checkout@v4
+ with:
+ fetch-depth: 2
+ - name: Setup ccache
+ uses: hendrikmuhs/[email protected]
+ with:
+ max-size: "2000M"
+ - name: Install Ninja
+ uses: llvm/actions/install-ninja@main
+ - name: Build and Test
+ run: |
+ modified_files=$(git diff --name-only HEAD~1...HEAD)
+ modified_dirs=$(echo "$modified_files" | cut -d'/' -f1 | sort -u)
+
+ echo $modified_files
+ echo $modified_dirs
+
+ . ./.ci/compute-projects.sh
+
+ all_projects="clang clang-tools-extra lld lldb llvm mlir"
+ modified_projects="$(keep-modified-projects ${all_projects})"
+
+ # We have to disable the runtimes builds due to https://github.com/llvm/llvm-project/issues/90568
+ # and the lldb tests depend on libcxx, so we need to skip them.
+ mac_check_targets=$(check-targets ${modified_projects} | sort | uniq | tr '\n' ' ' | sed -e 's/check-lldb //g')
+ mac_projects=$(add-dependencies ${modified_projects} | sort | uniq | tr '\n' ' ')
+
+ mac_runtimes_to_test=$(compute-runtimes-to-test ${modified_projects})
+ mac_runtime_check_targets=$(check-targets ${mac_runtimes_to_test} | sort | uniq | tr '\n' ' ')
+ mac_runtimes=$(echo ${mac_runtimes_to_test} | tr ' ' '\n' | sort | uniq | tr '\n' ' ')
+
+ if [[ "${mac_projects}" == "" ]]; then
+ echo "No projects to build"
+ exit 0
+ fi
+
+ echo "Projects to test: ${modified_projects}"
+ echo "Runtimes to test: ${mac_runtimes_to_test}"
+ echo "Building projects: ${mac_projects}"
+ echo "Running project checks targets: ${mac_check_targets}"
+ echo "Building runtimes: ${mac_runtimes}"
+ echo "Running runtimes checks targets: ${mac_runtime_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="$(echo ${mac_projects} | tr ' ' ';')" \
+ -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 $mac_check_targets
|
Also, remove the old pre-merge tests since Linux and Windows are tested on buildkite now. (cherry picked from commit b89617d)
@tstellar (or anyone else). If you would like to add a note about this fix in the release notes (completely optional). Please reply to this comment with a one or two sentence description of the fix. When you are done, please add the release:note label to this PR. |
Backport b89617d
Requested by: @tstellar