[NFC][Matrix][Clang][HLSL] Move MaxMatrixDimension to a LangOpt #138567
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: CI Checks | |
permissions: | |
contents: read | |
on: | |
pull_request: | |
types: | |
- opened | |
- synchronize | |
- reopened | |
# When a PR is closed, we still start this workflow, but then skip | |
# all the jobs, which makes it effectively a no-op. The reason to | |
# do this is that it allows us to take advantage of concurrency groups | |
# to cancel in progress CI jobs whenever the PR is closed. | |
- closed | |
push: | |
branches: | |
- 'release/**' | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }} | |
cancel-in-progress: true | |
jobs: | |
premerge-checks-linux: | |
name: Build and Test Linux${{ (startsWith(matrix.runs-on, 'depot-ubuntu-24.04-arm') && ' AArch64') || '' }} | |
if: >- | |
github.repository_owner == 'llvm' && | |
(github.event_name != 'pull_request' || github.event.action != 'closed') | |
strategy: | |
fail-fast: false | |
matrix: | |
runs-on: | |
- depot-ubuntu-24.04-arm-16 | |
- llvm-premerge-linux-runners | |
runs-on: ${{ matrix.runs-on }} | |
container: | |
# The llvm-premerge agents are already containers and running the | |
# this same image, so we can't use a container for the github action | |
# job. The depot containers are running on VMs, so we can use a | |
# container. This helps ensure the build environment is as close | |
# as possible on both the depot runners and the llvm-premerge runners. | |
image: ${{ (startsWith(matrix.runs-on, 'depot-ubuntu-24.04-arm') && format('ghcr.io/{0}/arm64v8/ci-ubuntu-24.04',github.repository_owner) ) || null }} | |
# --privileged is needed to run the lldb tests that disable aslr. | |
# The SCCACHE environment variables are need to be copied from the host | |
# to the container to make sure it is configured correctly to use the | |
# depot cache. | |
options: >- | |
--privileged | |
--env SCCACHE_WEBDAV_ENDPOINT | |
--env SCCACHE_WEBDAV_TOKEN | |
defaults: | |
run: | |
# The run step defaults to using sh as the shell when running in a | |
# container, so make bash the default to ensure consistency between | |
# container and non-container jobs. | |
shell: bash | |
steps: | |
- name: Checkout LLVM | |
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 | |
with: | |
fetch-depth: 2 | |
- name: Build and Test | |
continue-on-error: ${{ runner.arch == 'ARM64' }} | |
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}" | |
echo "Running runtimes checks requiring reconfiguring targets: ${runtimes_check_targets_needs_reconfig}" | |
export CC=/opt/llvm/bin/clang | |
export CXX=/opt/llvm/bin/clang++ | |
# The linux-premerge runners are hosted on GCP and have a different | |
# cache setup than the depot runners. | |
if [[ "${{ matrix.runs-on }}" = "llvm-premerge-linux-runners" ]]; then | |
# This environment variable is passes into the container through the | |
# runner pod definition. This differs between our two clusters which | |
# why we do not hardcode it. | |
export SCCACHE_GCS_BUCKET=$CACHE_GCS_BUCKET | |
export SCCACHE_GCS_RW_MODE=READ_WRITE | |
fi | |
env | |
# Set the idle timeout to zero to ensure sccache runs for the | |
# entire duration of the job. Otherwise it might stop if we run | |
# several test suites in a row and discard statistics that we want | |
# to save in the end. | |
export SCCACHE_IDLE_TIMEOUT=0 | |
mkdir artifacts | |
SCCACHE_LOG=info SCCACHE_ERROR_LOG=$(pwd)/artifacts/sccache.log sccache --start-server | |
./.ci/monolithic-linux.sh "${projects_to_build}" "${project_check_targets}" "${runtimes_to_build}" "${runtimes_check_targets}" "${runtimes_check_targets_needs_reconfig}" "${enable_cir}" | |
- name: Upload Artifacts | |
# In some cases, Github will fail to upload the artifact. We want to | |
# continue anyways as a failed artifact upload is an infra failure, not | |
# a checks failure. | |
# https://github.com/actions/upload-artifact/issues/569 | |
continue-on-error: true | |
if: '!cancelled()' | |
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2 | |
with: | |
name: Premerge Artifacts (Linux ${{ runner.arch }}) | |
path: artifacts/ | |
retention-days: 5 | |
include-hidden-files: 'true' | |
premerge-checks-windows: | |
name: Build and Test Windows | |
if: >- | |
github.repository_owner == 'llvm' && | |
(github.event_name != 'pull_request' || github.event.action != 'closed') | |
runs-on: llvm-premerge-windows-2022-runners | |
defaults: | |
run: | |
shell: bash | |
steps: | |
- name: Checkout LLVM | |
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 | |
with: | |
fetch-depth: 2 | |
- 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 "Building runtimes: ${runtimes_to_build}" | |
echo "Running runtimes checks targets: ${runtimes_check_targets}" | |
echo "windows-projects=${projects_to_build}" >> $GITHUB_OUTPUT | |
echo "windows-check-targets=${project_check_targets}" >> $GITHUB_OUTPUT | |
echo "windows-runtimes=${runtimes_to_build}" >> $GITHUB_OUTPUT | |
echo "windows-runtimes-check-targets=${runtimes_check_targets}" >> $GITHUB_OUTPUT | |
- name: Build and Test | |
if: ${{ steps.vars.outputs.windows-projects != '' }} | |
shell: cmd | |
run: | | |
call C:\\BuildTools\\Common7\\Tools\\VsDevCmd.bat -arch=amd64 -host_arch=amd64 | |
# See the comments above in the Linux job for why we define each of | |
# these environment variables. | |
bash -c "export SCCACHE_GCS_BUCKET=$CACHE_GCS_BUCKET; export SCCACHE_GCS_RW_MODE=READ_WRITE; export SCCACHE_IDLE_TIMEOUT=0; mkdir artifacts; SCCACHE_LOG=info SCCACHE_ERROR_LOG=$(pwd)/artifacts/sccache.log sccache --start-server; .ci/monolithic-windows.sh \"${{ steps.vars.outputs.windows-projects }}\" \"${{ steps.vars.outputs.windows-check-targets }}\" \"${{ steps.vars.outputs.windows-runtimes }}\" \"${{ steps.vars.outputs.windows-runtimes-check-targets }}\"" | |
- name: Upload Artifacts | |
# In some cases, Github will fail to upload the artifact. We want to | |
# continue anyways as a failed artifact upload is an infra failure, not | |
# a checks failure. | |
# https://github.com/actions/upload-artifact/issues/569 | |
continue-on-error: true | |
if: '!cancelled()' | |
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2 | |
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@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 | |
with: | |
fetch-depth: 2 | |
- name: Setup ccache | |
uses: hendrikmuhs/ccache-action@bfa03e1de4d7f7c3e80ad9109feedd05c4f5a716 # v1.2.19 | |
with: | |
max-size: "2000M" | |
- name: Install Ninja | |
uses: llvm/actions/install-ninja@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} |