workflows/premerge: Add macOS testing for release branch (#124303)

Also, remove the old pre-merge tests since Linux and Windows are tested on buildkite now.

(cherry picked from commit b89617d02d1c8a2701c1d3290d2ff45cd858ccde)
This commit is contained in:
Tom Stellard 2025-01-30 19:37:54 -08:00
parent 66a50e246d
commit 0e240b08c6
6 changed files with 70 additions and 164 deletions

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -11,14 +11,12 @@ on:
paths: paths:
- 'llvm/**' - 'llvm/**'
- '.github/workflows/llvm-tests.yml' - '.github/workflows/llvm-tests.yml'
- '.github/workflows/llvm-project-tests.yml'
pull_request: pull_request:
branches: branches:
- 'release/**' - 'release/**'
paths: paths:
- 'llvm/**' - 'llvm/**'
- '.github/workflows/llvm-tests.yml' - '.github/workflows/llvm-tests.yml'
- '.github/workflows/llvm-project-tests.yml'
concurrency: concurrency:
# Skip intermediate builds: always. # Skip intermediate builds: always.
@ -27,14 +25,6 @@ concurrency:
cancel-in-progress: ${{ startsWith(github.ref, 'refs/pull/') }} cancel-in-progress: ${{ startsWith(github.ref, 'refs/pull/') }}
jobs: 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: abi-dump-setup:
if: github.repository_owner == 'llvm' if: github.repository_owner == 'llvm'
runs-on: ubuntu-latest runs-on: ubuntu-latest

View File

@ -10,6 +10,7 @@ on:
push: push:
branches: branches:
- 'main' - 'main'
- 'release/**'
jobs: jobs:
premerge-checks-linux: premerge-checks-linux:
@ -132,3 +133,72 @@ jobs:
call C:\\BuildTools\\Common7\\Tools\\VsDevCmd.bat -arch=amd64 -host_arch=amd64 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 }}" 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/ccache-action@v1.2.14
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