diff --git a/.github/workflows/libcxx-build-and-test.yaml b/.github/workflows/libcxx-build-and-test.yaml index 8c6d7c6c3c4dec..c20445eccaa6a7 100644 --- a/.github/workflows/libcxx-build-and-test.yaml +++ b/.github/workflows/libcxx-build-and-test.yaml @@ -47,189 +47,36 @@ env: jobs: - stage1: - if: github.repository_owner == 'llvm' - runs-on: libcxx-runners-8-set - continue-on-error: false + macos: + runs-on: macos-14 strategy: fail-fast: false matrix: config: [ - 'generic-cxx03', - 'generic-cxx26', - 'generic-modules' + generic-cxx03, + generic-cxx23, + generic-modules, + apple-configuration ] - cc: [ 'clang-19' ] - cxx: [ 'clang++-19' ] - include: - - config: 'generic-gcc' - cc: 'gcc-14' - cxx: 'g++-14' steps: - uses: actions/checkout@v4 - - name: ${{ matrix.config }}.${{ matrix.cxx }} - run: libcxx/utils/ci/run-buildbot ${{ matrix.config }} - env: - CC: ${{ matrix.cc }} - CXX: ${{ matrix.cxx }} - - uses: actions/upload-artifact@26f96dfa697d77e81fd5907df203aa23a56210a8 # v4.3.0 - if: always() + - uses: maxim-lobanov/setup-xcode@v1 with: - name: ${{ matrix.config }}-${{ matrix.cxx }}-results - path: | - **/test-results.xml - **/*.abilist - **/CMakeError.log - **/CMakeOutput.log - **/crash_diagnostics/* - stage2: - if: github.repository_owner == 'llvm' - runs-on: libcxx-runners-8-set - needs: [ stage1 ] - continue-on-error: false - strategy: - fail-fast: false - matrix: - config: [ - 'generic-cxx11', - 'generic-cxx14', - 'generic-cxx17', - 'generic-cxx20', - 'generic-cxx23' - ] - cc: [ 'clang-19' ] - cxx: [ 'clang++-19' ] - include: - - config: 'generic-gcc-cxx11' - cc: 'gcc-14' - cxx: 'g++-14' - - config: 'generic-cxx23' - cc: 'clang-17' - cxx: 'clang++-17' - - config: 'generic-cxx26' - cc: 'clang-18' - cxx: 'clang++-18' - steps: - - uses: actions/checkout@v4 - - name: ${{ matrix.config }} - run: libcxx/utils/ci/run-buildbot ${{ matrix.config }} - env: - CC: ${{ matrix.cc }} - CXX: ${{ matrix.cxx }} + xcode-version: 'latest-stable' + - uses: seanmiddleditch/gha-setup-ninja@master + - name: Build and test + run: | + python3 -m venv .venv + source .venv/bin/activate + python3 -m pip install psutil + bash libcxx/utils/ci/run-buildbot ${{ matrix.config }} - uses: actions/upload-artifact@26f96dfa697d77e81fd5907df203aa23a56210a8 # v4.3.0 if: always() # Upload artifacts even if the build or test suite fails with: - name: ${{ matrix.config }}-${{ matrix.cxx }}-results - path: | - **/test-results.xml - **/*.abilist - **/CMakeError.log - **/CMakeOutput.log - **/crash_diagnostics/* - stage3: - if: github.repository_owner == 'llvm' - needs: [ stage1, stage2 ] - continue-on-error: false - strategy: - fail-fast: false - max-parallel: 8 - matrix: - config: [ - 'generic-abi-unstable', - 'generic-hardening-mode-debug', - 'generic-hardening-mode-extensive', - 'generic-hardening-mode-fast', - 'generic-hardening-mode-fast-with-abi-breaks', - 'generic-merged', - 'generic-modules-lsv', - 'generic-no-exceptions', - 'generic-no-experimental', - 'generic-no-filesystem', - 'generic-no-localization', - 'generic-no-terminal', - 'generic-no-random_device', - 'generic-no-threads', - 'generic-no-tzdb', - 'generic-no-unicode', - 'generic-no-wide-characters', - 'generic-no-rtti', - 'generic-optimized-speed', - 'generic-static', - # TODO Find a better place for the benchmark and bootstrapping builds to live. They're either very expensive - # or don't provide much value since the benchmark run results are too noise on the bots. - 'benchmarks', - 'bootstrapping-build' - ] - machine: [ 'libcxx-runners-8-set' ] - include: - - config: 'generic-cxx26' - machine: libcxx-runners-8-set - - config: 'generic-asan' - machine: libcxx-runners-8-set - - config: 'generic-tsan' - machine: libcxx-runners-8-set - - config: 'generic-ubsan' - machine: libcxx-runners-8-set - # Use a larger machine for MSAN to avoid timeout and memory allocation issues. - - config: 'generic-msan' - machine: libcxx-runners-8-set - runs-on: ${{ matrix.machine }} - steps: - - uses: actions/checkout@v4 - - name: ${{ matrix.config }} - run: libcxx/utils/ci/run-buildbot ${{ matrix.config }} - env: - CC: clang-19 - CXX: clang++-19 - - uses: actions/upload-artifact@26f96dfa697d77e81fd5907df203aa23a56210a8 # v4.3.0 - if: always() - with: - name: ${{ matrix.config }}-results + name: macos-${{ matrix.config }}-results path: | **/test-results.xml **/*.abilist **/CMakeError.log **/CMakeOutput.log **/crash_diagnostics/* - windows: - runs-on: windows-2022 - needs: [ stage1 ] - strategy: - fail-fast: false - matrix: - include: - - { config: clang-cl-dll, mingw: false } - - { config: clang-cl-static, mingw: false } - - { config: clang-cl-no-vcruntime, mingw: false } - - { config: clang-cl-debug, mingw: false } - - { config: clang-cl-static-crt, mingw: false } - - { config: mingw-dll, mingw: true } - - { config: mingw-static, mingw: true } - - { config: mingw-dll-i686, mingw: true } - steps: - - uses: actions/checkout@v4 - - name: Install dependencies - run: | - choco install -y ninja - pip install psutil - - name: Install a current LLVM - if: ${{ matrix.mingw != true }} - run: | - choco install -y llvm --version=18.1.6 --allow-downgrade - - name: Install llvm-mingw - if: ${{ matrix.mingw == true }} - run: | - curl -LO https://github.com/mstorsjo/llvm-mingw/releases/download/20240606/llvm-mingw-20240606-ucrt-x86_64.zip - powershell Expand-Archive llvm-mingw*.zip -DestinationPath . - del llvm-mingw*.zip - mv llvm-mingw* c:\llvm-mingw - echo "c:\llvm-mingw\bin" | Out-File -FilePath $Env:GITHUB_PATH -Encoding utf8 -Append - - name: Add Git Bash to the path - run: | - echo "c:\Program Files\Git\usr\bin" | Out-File -FilePath $Env:GITHUB_PATH -Encoding utf8 -Append - - name: Set up the MSVC dev environment - if: ${{ matrix.mingw != true }} - uses: ilammy/msvc-dev-cmd@v1 - - name: Build and test - run: | - bash libcxx/utils/ci/run-buildbot ${{ matrix.config }} diff --git a/libcxx/utils/ci/buildkite-pipeline.yml b/libcxx/utils/ci/buildkite-pipeline.yml index 0a81268cbe7a16..a0a2a8bdbf9e6b 100644 --- a/libcxx/utils/ci/buildkite-pipeline.yml +++ b/libcxx/utils/ci/buildkite-pipeline.yml @@ -37,47 +37,8 @@ definitions: - "**/crash_diagnostics/*" steps: -- group: ':mac: Apple' +- group: ':mac: Apple Backdeployment' steps: - - label: MacOS x86_64 - command: libcxx/utils/ci/run-buildbot generic-cxx23 - agents: - queue: libcxx-builders - os: macos - arch: x86_64 - <<: *common - - - label: MacOS arm64 - command: libcxx/utils/ci/run-buildbot generic-cxx23 - agents: - queue: libcxx-builders - os: macos - arch: arm64 - <<: *common - - - label: MacOS with Modules - command: libcxx/utils/ci/run-buildbot generic-modules - agents: - queue: libcxx-builders - os: macos - <<: *common - - - label: MacOS with C++03 - command: libcxx/utils/ci/run-buildbot generic-cxx03 - agents: - queue: libcxx-builders - os: macos - <<: *common - - # Build with the configuration we use to generate libc++.dylib on Apple platforms - - label: Apple system configuration - command: libcxx/utils/ci/run-buildbot apple-configuration - agents: - queue: libcxx-builders - os: macos - arch: arm64 # This can technically run on any architecture, but we have more resources on arm64 so we pin this job to arm64 - <<: *common - - label: Apple back-deployment macosx10.13 command: libcxx/utils/ci/run-buildbot apple-system-backdeployment-10.13 agents: @@ -85,146 +46,3 @@ steps: os: macos arch: x86_64 # We need to use x86_64 for back-deployment CI on this target since macOS didn't support arm64 back then <<: *common - - - label: Apple back-deployment macosx10.15 - command: libcxx/utils/ci/run-buildbot apple-system-backdeployment-10.15 - agents: - queue: libcxx-builders - os: macos - arch: x86_64 # We need to use x86_64 for back-deployment CI on this target since macOS didn't support arm64 back then - <<: *common - - - label: Apple back-deployment with hardening enabled - command: libcxx/utils/ci/run-buildbot apple-system-backdeployment-hardened-11.0 - agents: - queue: libcxx-builders - os: macos - arch: x86_64 # TODO: Remove this once we are able to run back-deployment on arm64 again, since this isn't x86_64 specific - <<: *common - -- group: ARM - steps: - - label: AArch64 - command: libcxx/utils/ci/run-buildbot aarch64 - agents: - queue: libcxx-builders-linaro-arm - arch: aarch64 - <<: *common - - - label: AArch64 -fno-exceptions - command: libcxx/utils/ci/run-buildbot aarch64-no-exceptions - agents: - queue: libcxx-builders-linaro-arm - arch: aarch64 - <<: *common - - - label: Armv8 - command: libcxx/utils/ci/run-buildbot armv8 - agents: - queue: libcxx-builders-linaro-arm - arch: armv8l - <<: *common - - - label: Armv8 -fno-exceptions - command: libcxx/utils/ci/run-buildbot armv8-no-exceptions - agents: - queue: libcxx-builders-linaro-arm - arch: armv8l - <<: *common - - - label: Armv7 - command: libcxx/utils/ci/run-buildbot armv7 - agents: - queue: libcxx-builders-linaro-arm - arch: armv8l - <<: *common - - - label: Armv7 -fno-exceptions - command: libcxx/utils/ci/run-buildbot armv7-no-exceptions - agents: - queue: libcxx-builders-linaro-arm - arch: armv8l - <<: *common - - - label: Armv7-M picolibc - command: libcxx/utils/ci/run-buildbot armv7m-picolibc - agents: - queue: libcxx-builders-linaro-arm - arch: aarch64 - <<: *common - - - label: Armv7-M picolibc -fno-exceptions - command: libcxx/utils/ci/run-buildbot armv7m-picolibc-no-exceptions - agents: - queue: libcxx-builders-linaro-arm - arch: aarch64 - <<: *common - -- group: AIX - steps: - - label: AIX (32-bit) - command: libcxx/utils/ci/run-buildbot aix - env: - CC: clang - CXX: clang++ - OBJECT_MODE: '32' - agents: - queue: libcxx-builders - os: aix - <<: *common - - - label: AIX (64-bit) - command: libcxx/utils/ci/run-buildbot aix - env: - CC: clang - CXX: clang++ - OBJECT_MODE: '64' - agents: - queue: libcxx-builders - os: aix - <<: *common - -- group: ':freebsd: FreeBSD' - steps: - - label: FreeBSD 13 amd64 - command: libcxx/utils/ci/run-buildbot generic-cxx26 - env: - CC: clang17 - CXX: clang++17 - agents: - queue: libcxx-builders - os: freebsd - <<: *common - -- group: ':android: Android' - steps: - - label: Android 5.0, x86 NDK - command: libcxx/utils/ci/run-buildbot android-ndk-21-def-x86 - agents: - queue: libcxx-builders - os: android - <<: *common - - - label: Android 13, x86_64 NDK - command: libcxx/utils/ci/run-buildbot android-ndk-33-goog-x86_64 - agents: - queue: libcxx-builders - os: android - <<: *common - - - # TODO: Re-enable this once we've figured out how to run back-deployment testing on arm64 on recent OSes - # - label: "Apple back-deployment macosx11.0 arm64" - # command: "libcxx/utils/ci/run-buildbot apple-system-backdeployment-11.0" - # artifact_paths: - # - "**/test-results.xml" - # - "**/*.abilist" - # agents: - # queue: "libcxx-builders" - # os: "macos" - # arch: "arm64" - # retry: - # automatic: - # - exit_status: -1 # Agent was lost - # limit: 2 - # timeout_in_minutes: 120