name: CI
on:
pull_request:
branches: [master]
push:
branches: [master]
env:
CARGO_TERM_COLOR: always
CARGO_INCREMENTAL: 0
CARGO_PROFILE_DEV_DEBUG: 0
CFLAGS: -g0
CXXFLAGS: -g0
permissions:
contents: read
jobs:
actionlint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- name: Lint GitHub Actions workflows
uses: reviewdog/action-actionlint@v1
test:
strategy:
matrix:
os: [ubuntu-22.04, macos-14, windows-2022]
runs-on: ${{ matrix.os }}
steps:
- name: Install build-essential and clang (arm64)
if: matrix.os == 'ubuntu-22.04-arm64'
run: sudo apt-get update && sudo apt-get install -y build-essential clang libclang-dev git-lfs
- uses: actions/checkout@v6
with:
lfs: true
- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@stable
- name: Cache cargo registry and build
uses: Swatinem/rust-cache@v2
with:
shared-key: "build-${{ matrix.os }}"
- name: Run tests
run: |
cargo test