Update to the latest release/23.x branch #2
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: libc Precommit CI - shared tests | |
| permissions: | |
| contents: read | |
| on: | |
| pull_request: | |
| paths: | |
| - 'libc/**' | |
| - '.github/workflows/libc-shared-tests.yml' | |
| jobs: | |
| windows-msvc-shared: | |
| name: libc-shared-test with MSVC on ${{ matrix.arch }} | |
| if: github.repository_owner == 'llvm' | |
| timeout-minutes: 20 | |
| strategy: | |
| fail-fast: false # If one arch fails, let the other finish | |
| matrix: | |
| include: | |
| - arch: amd64 | |
| os: windows-2022 | |
| - arch: amd64_x86 | |
| os: windows-2022 | |
| - arch: arm64 | |
| os: windows-11-arm | |
| runs-on: ${{ matrix.os }} | |
| steps: | |
| - name: Checkout LLVM | |
| uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 | |
| with: | |
| persist-credentials: false | |
| - name: Setup MSVC Dev Environment | |
| uses: ilammy/msvc-dev-cmd@0b201ec74fa43914dc39ae48a89fd1d8cb592756 # v1.13.0 | |
| with: | |
| arch: ${{ matrix.arch }} | |
| - name: Configure CMake | |
| run: | | |
| cmake -B build -S runtimes -G Ninja ` | |
| -DLLVM_ENABLE_RUNTIMES=libc ` | |
| -DCMAKE_C_COMPILER=cl ` | |
| -DCMAKE_CXX_COMPILER=cl ` | |
| -DCMAKE_BUILD_TYPE=Release | |
| - name: Build and Test | |
| run: cmake --build build --target libc-shared-tests | |
| linux-cross-arch-shared: | |
| name: libc-shared-tests on ${{ matrix.arch }} | |
| if: github.repository_owner == 'llvm' | |
| timeout-minutes: 20 | |
| runs-on: ubuntu-24.04 | |
| container: | |
| image: 'ghcr.io/llvm/libc-ubuntu-24.04:latest@sha256:b9c8ea74685ea46c86594428c41a1ba95bc6d33b28183c0ddac64414344950fd' | |
| strategy: | |
| fail-fast: false # If one arch fails, let the other finish | |
| matrix: | |
| include: | |
| - arch: aarch64 | |
| target_triple: aarch64-linux-gnu | |
| gcc_arch: aarch64-linux-gnu | |
| - arch: riscv64 | |
| target_triple: riscv64-linux-gnu | |
| gcc_arch: riscv64-linux-gnu | |
| - arch: ppc64le | |
| target_triple: powerpc64le-linux-gnu | |
| gcc_arch: powerpc64le-linux-gnu | |
| - arch: armhf | |
| target_triple: arm-linux-gnueabihf | |
| gcc_arch: arm-linux-gnueabihf | |
| gcc_ver: -12 | |
| steps: | |
| - name: Checkout LLVM | |
| uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 | |
| with: | |
| persist-credentials: false | |
| - name: Create QEMU wrapper | |
| run: | | |
| mkdir build | |
| cat << 'EOF' > /__w/llvm-project/llvm-project/build/qemu-wrapper.sh | |
| #!/bin/bash | |
| qemu-${{ matrix.arch }}-static -L /usr/${{ matrix.target_triple }} "$@" | |
| EOF | |
| chmod +x /__w/llvm-project/llvm-project/build/qemu-wrapper.sh | |
| - name: Configure CMake - Clang | |
| run: | | |
| cmake -B build/clang -S runtimes -G Ninja \ | |
| -DLLVM_ENABLE_RUNTIMES=libc \ | |
| -DCMAKE_C_COMPILER=clang-23 \ | |
| -DCMAKE_CXX_COMPILER=clang++-23 \ | |
| -DCMAKE_BUILD_TYPE=Release \ | |
| -DLLVM_USE_LINKER=lld-23 \ | |
| -DLIBC_TARGET_TRIPLE=${{ matrix.target_triple }} \ | |
| -DCMAKE_CROSSCOMPILING_EMULATOR=/__w/llvm-project/llvm-project/build/qemu-wrapper.sh | |
| - name: Build and Run - Clang | |
| env: | |
| QEMU_LD_PREFIX: /usr/${{ matrix.target_triple }} | |
| run: | | |
| cmake --build build/clang --target libc-shared-tests | |
| - name: Configure CMake - gcc | |
| run: | | |
| cmake -B build/gcc -S runtimes -G Ninja \ | |
| -DLLVM_ENABLE_RUNTIMES=libc \ | |
| -DCMAKE_C_COMPILER=${{ matrix.target_triple }}-gcc${{ matrix.gcc_ver }} \ | |
| -DCMAKE_CXX_COMPILER=${{ matrix.target_triple }}-g++${{ matrix.gcc_ver }} \ | |
| -DCMAKE_BUILD_TYPE=Release \ | |
| -DLIBC_TARGET_TRIPLE=${{ matrix.target_triple }} \ | |
| -DCMAKE_CROSSCOMPILING_EMULATOR=/__w/llvm-project/llvm-project/build/qemu-wrapper.sh | |
| - name: Build and Run - gcc | |
| env: | |
| QEMU_LD_PREFIX: /usr/${{ matrix.target_triple }} | |
| run: | | |
| cmake --build build/gcc --target libc-shared-tests | |
| linux-gcc-shared: | |
| name: libc-shared-tests with ${{ matrix.name }} | |
| if: github.repository_owner == 'llvm' | |
| timeout-minutes: 20 | |
| runs-on: ubuntu-24.04 | |
| container: | |
| image: 'ghcr.io/llvm/libc-ubuntu-24.04:latest@sha256:b9c8ea74685ea46c86594428c41a1ba95bc6d33b28183c0ddac64414344950fd' | |
| strategy: | |
| fail-fast: false # If one arch fails, let the other finish | |
| matrix: | |
| include: | |
| - name: gcc | |
| c_compiler: gcc | |
| cxx_compiler: g++ | |
| - name: gcc-7 | |
| c_compiler: /usr/local/gcc7/bin/gcc | |
| cxx_compiler: /usr/local/gcc7/bin/g++ | |
| - name: gcc-8 | |
| c_compiler: /usr/local/gcc8/bin/gcc | |
| cxx_compiler: /usr/local/gcc8/bin/g++ | |
| - name: gcc-9 | |
| c_compiler: gcc-9 | |
| cxx_compiler: g++-9 | |
| - name: gcc-11 | |
| c_compiler: gcc-11 | |
| cxx_compiler: g++-11 | |
| steps: | |
| - name: Checkout LLVM | |
| uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 | |
| with: | |
| persist-credentials: false | |
| - name: Configure CMake | |
| run: | | |
| cmake -B build -S runtimes -G Ninja \ | |
| -DLLVM_ENABLE_RUNTIMES=libc \ | |
| -DCMAKE_C_COMPILER=${{ matrix.c_compiler }} \ | |
| -DCMAKE_CXX_COMPILER=${{ matrix.cxx_compiler }} \ | |
| -DCMAKE_BUILD_TYPE=Release | |
| - name: Build and Run | |
| run: | | |
| cmake --build build --target libc-shared-tests |