[llvm] [libc] add multi-platform pre-commit github actions (PR #119104)
Schrodinger ZHU Yifan via llvm-commits
llvm-commits at lists.llvm.org
Mon Dec 9 11:58:39 PST 2024
================
@@ -0,0 +1,92 @@
+# This workflow is for pre-commit testing of the LLVM-libc project.
+name: LLVM-libc Pre-commit Overlay Tests
+
+on:
+ pull_request:
+ branches: [ "main" ]
+ paths:
+ - 'libc/**'
+ - '.github/workflows/libc-overlay-tests.yml'
+
+jobs:
+ build:
+ runs-on: ${{ matrix.os }}
+ strategy:
+ # Set fail-fast to false to ensure that feedback is delivered for all matrix combinations.
+ fail-fast: false
+ matrix:
+ include:
+ # TODO: add linux gcc when it is fixed
+ - os: ubuntu-24.04
+ compiler:
+ c_compiler: clang
+ cpp_compiler: clang++
+ - os: windows-2022
+ compiler:
+ c_compiler: clang-cl
+ cpp_compiler: clang-cl
+ - os: macos-14
+ compiler:
+ c_compiler: clang
+ cpp_compiler: clang++
+
+ steps:
+ - uses: actions/checkout at v4
+
+ - name: Setup ccache
+ uses: hendrikmuhs/ccache-action at v1
+ with:
+ max-size: 1G
+ key: libc_overlay_build_${{ matrix.os }}_${{ matrix.compiler.c_compiler }}
+ variant: sccache
+
+ - name: Prepare dependencies (Ubuntu)
+ if: runner.os == 'Linux'
+ run: |
+ sudo apt-get update
+ sudo apt-get install -y libmpfr-dev libgmp-dev libmpc-dev ninja-build
+
+ - name: Prepare dependencies (Windows)
+ if: runner.os == 'Windows'
+ run: |
+ choco install ninja
+
+ - name: Prepare dependencies (macOS)
+ if: runner.os == 'macOS'
+ run: |
+ brew install ninja
+
+ - name: Set reusable strings
+ id: strings
+ shell: bash
+ run: |
+ echo "build-output-dir=${{ github.workspace }}/build" >> "$GITHUB_OUTPUT"
+
+ - name: Configure CMake
+ run: >
+ cmake -B ${{ steps.strings.outputs.build-output-dir }}
+ -DCMAKE_CXX_COMPILER=${{ matrix.compiler.cpp_compiler }}
+ -DCMAKE_C_COMPILER=${{ matrix.compiler.c_compiler }}
+ -DCMAKE_BUILD_TYPE=MinSizeRel
+ -DCMAKE_C_COMPILER_LAUNCHER=sccache
+ -DCMAKE_CXX_COMPILER_LAUNCHER=sccache
+ -DCMAKE_POLICY_DEFAULT_CMP0141=NEW
----------------
SchrodingerZhu wrote:
Same as above, following the instructions from https://github.com/mozilla/sccache/tree/main?tab=readme-ov-file#usage
https://github.com/llvm/llvm-project/pull/119104
More information about the llvm-commits
mailing list