name: CI
on:
push:
branches:
- master
pull_request:
jobs:
fmt:
name: Check formatting
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- run: cargo fmt -- --check
ci:
name: Test ${{ matrix.name }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
include:
- name: macOS
os: macos-latest
clang: ["14.0", "clang_10_0"]
rust: "1.71.0"
- name: Ubuntu
os: ubuntu-latest
clang: ["14.0", "clang_10_0"]
rust: "1.71.0"
- name: Windows
os: windows-latest
clang: ["14.0", "clang_10_0"]
rust: "1.71.0"
steps:
- uses: actions/checkout@v6
- name: Install LLVM and Clang
uses: KyleMayes/install-llvm-action@v2.0.3
with:
version: ${{ matrix.clang[0] }}
directory: ${{ runner.temp }}/llvm-${{ matrix.clang[0] }}
- name: Install Rust
uses: dtolnay/rust-toolchain@master
with:
toolchain: ${{ matrix.rust }}
- name: Generate lockfile
run: cargo generate-lockfile
- name: Cargo Test (Dynamic)
env:
LIBCLANG_PATH: ${{ runner.temp }}/llvm-${{ matrix.clang[0] }}/lib
LLVM_CONFIG_PATH: ${{ runner.temp }}/llvm-${{ matrix.clang[0] }}/bin/llvm-config
run: cargo test --verbose --features ${{ matrix.clang[1] }} -- --nocapture
- name: Cargo Test (Runtime)
env:
LIBCLANG_PATH: ${{ runner.temp }}/llvm-${{ matrix.clang[0] }}/lib
LLVM_CONFIG_PATH: ${{ runner.temp }}/llvm-${{ matrix.clang[0] }}/bin/llvm-config
run: cargo test --verbose --features "${{ matrix.clang[1] }} runtime" -- --nocapture