Clean up CI pipelines #280
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
--- | ||
name: CI | ||
on: | ||
pull_request: | ||
push: | ||
branches: | ||
- "master" | ||
schedule: | ||
- cron: "0 16 * * 1" # 8am PST every Monday | ||
jobs: | ||
lint: | ||
name: Lints | ||
runs-on: ubuntu-latest | ||
steps: | ||
- uses: actions/checkout@v4 | ||
with: | ||
submodules: recursive | ||
- name: Install rust | ||
run: | | ||
rustup -V | ||
rustup set profile minimal | ||
rustup toolchain install stable | ||
rustup show | ||
- name: Check Formatting | ||
run: cargo fmt --check --all --verbose | ||
- name: Clippy | ||
run: cargo clippy --workspace --all-features --verbose -- -Dwarnings | ||
- name: Docs | ||
env: | ||
RUSTDOCFLAGS:-D warnings | ||
run: cargo doc --workspace --all-features --no-deps --verbose | ||
build: | ||
name: Build and test | ||
runs-on: ${{ matrix.os }} | ||
strategy: | ||
matrix: | ||
include: | ||
# Ubuntus | ||
- os: ubuntu-latest | ||
binary_target: x86_64-unknown-linux-musl | ||
needs_musl: true | ||
toolchain: stable | ||
# MacOS ARM | ||
- os: macos-latest | ||
binary_target: aarch64-apple-darwin | ||
toolchain: stable | ||
# Windows | ||
- os: windows-latest | ||
binary_target: x86_64-pc-windows-msvc | ||
toolchain: stable | ||
# Nightly Rust | ||
- os: ubuntu-latest | ||
binary_target: x86_64-unknown-linux-gnu | ||
toolchain: nightly | ||
# MSRV | ||
- os: ubuntu-latest | ||
binary_target: x86_64-unknown-linux-gnu | ||
toolchain: 1.62.1 | ||
steps: | ||
- uses: actions/checkout@v4 | ||
with: | ||
submodules: recursive | ||
- name: Install musl tools | ||
if: matrix.needs_musl | ||
run: | | ||
sudo apt-get install musl-tools | ||
sudo ln -s /usr/bin/musl-gcc /usr/bin/musl-g++ | ||
# Required for bindgen on Windows | ||
- name: Install LLVM and Clang | ||
uses: KyleMayes/install-llvm-action@v2 | ||
if: matrix.os == 'windows-latest' | ||
with: | ||
version: "10.0" | ||
directory: ${{ runner.temp }}/llvm-10.0/ | ||
- name: Set CMake generator | ||
if: matrix.os == 'windows-latest' | ||
run: | | ||
echo "CMAKE_GENERATOR=NMake Makefiles" >> $env:GITHUB_ENV | ||
echo "${{ env.CMAKE_GENERATOR }}" | ||
echo $env:CMAKE_GENERATOR | ||
- name: Install rust ${{ matrix.binary_target }} | ||
run: | | ||
rustup -V | ||
rustup set profile minimal | ||
rustup toolchain install --force-non-host ${{ matrix.toolchain }}-${{ matrix.binary_target }} | ||
rustup show | ||
- name: Build | ||
run: cargo build --workspace --all-features --verbose | ||
- name: Test | ||
run: cargo test --workspace --all-features --verbose |