| # This workflow is for pre-commit testing of the LLVM-libc project. |
| name: LLVM-libc Pre-commit Overlay Tests (FreeBSD VM) |
| permissions: |
| contents: read |
| on: |
| pull_request: |
| paths: |
| - 'libc/**' |
| - '.github/workflows/libc-freebsd-vm-tests.yml' |
| |
| jobs: |
| build: |
| if: github.repository_owner == 'llvm' |
| timeout-minutes: 120 |
| runs-on: ubuntu-24.04 |
| |
| steps: |
| - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 |
| with: |
| persist-credentials: false |
| |
| # MPFR is required by some of the mathlib tests. |
| - name: Setup FreeBSD |
| uses: vmactions/freebsd-vm@d1e65811565151536c0c894fff74f06351ed26e6 # v 1.4.5 |
| with: |
| usesh: true |
| sync: nfs |
| release: "15.0" |
| mem: 12288 |
| run: | |
| pkg update |
| pkg upgrade -y |
| pkg install -y ninja cmake llvm22 python3 |
| |
| # Use MinSizeRel to reduce the size of the build. |
| # Notice that CMP0141=NEW and MSVC_DEBUG_INFORMATION_FORMAT=Embedded are required |
| # by the sccache tool. |
| - name: Configure CMake |
| shell: freebsd {0} |
| run: > |
| cmake -B build |
| -DCMAKE_CXX_COMPILER=clang++22 |
| -DCMAKE_C_COMPILER=clang22 |
| -DCMAKE_BUILD_TYPE=RelWithDebInfo |
| -DLLVM_ENABLE_RUNTIMES=libc |
| -G Ninja |
| -S runtimes |
| |
| - name: Build |
| shell: freebsd {0} |
| run: > |
| cmake |
| --build build |
| --parallel |
| --target libc |
| |
| - name: Test |
| shell: freebsd {0} |
| run: > |
| cmake |
| --build build |
| --parallel |
| --target check-libc |