name: CI on: push: branches: - master pull_request: branches: - master jobs: ci: name: CI runs-on: ${{ matrix.os }} strategy: matrix: os: [macos-latest, ubuntu-latest, windows-latest] clang: [["11.0", "clang_11_0"]] rust: ["1.40.0"] steps: - name: Checkout Repository uses: actions/checkout@v2 # LLVM and Clang - name: Cache LLVM and Clang id: cache-llvm uses: actions/cache@v2 with: path: ${{ runner.temp }}/llvm-${{ matrix.clang[0] }} key: ${{ matrix.os }}-llvm-${{ matrix.clang[0] }} - name: Install LLVM and Clang uses: KyleMayes/install-llvm-action@v1 with: version: ${{ matrix.clang[0] }} directory: ${{ runner.temp }}/llvm-${{ matrix.clang[0] }} cached: ${{ steps.cache-llvm.outputs.cache-hit }} # Rust - name: Install Rust uses: actions-rs/toolchain@v1 with: toolchain: ${{ matrix.rust }} # Test - name: Cargo Test (Dynamic) uses: actions-rs/cargo@v1 env: LIBCLANG_PATH: ${{ runner.temp }}/llvm-${{ matrix.clang[0] }}/lib LLVM_CONFIG_PATH: ${{ runner.temp }}/llvm-${{ matrix.clang[0] }}/bin/llvm-config with: command: test args: --verbose --features ${{ matrix.clang[1] }} -- --nocapture - name: Cargo Test (Runtime) uses: actions-rs/cargo@v1 env: LIBCLANG_PATH: ${{ runner.temp }}/llvm-${{ matrix.clang[0] }}/lib LLVM_CONFIG_PATH: ${{ runner.temp }}/llvm-${{ matrix.clang[0] }}/bin/llvm-config with: command: test args: --verbose --features "${{ matrix.clang[1] }} runtime" -- --nocapture