name: CI
on:
push:
branches: [main, master]
pull_request:
branches: [main, master]
env:
CARGO_TERM_COLOR: always
jobs:
linux:
name: Linux
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install Rust
uses: dtolnay/rust-toolchain@stable
with:
components: clippy
- name: Cache cargo
uses: Swatinem/rust-cache@v2
- name: Clippy (tokio-runtime)
run: cargo clippy --all-targets --features=tokio-runtime,file-lock,unprivileged
- name: Clippy (async-io-runtime)
run: cargo clippy --all-targets --features=async-io-runtime,file-lock,unprivileged
- name: Doc
run: cargo doc --features=file-lock,unprivileged,tokio-runtime
macos:
name: MacOS
runs-on: macos-latest
steps:
- uses: actions/checkout@v4
- name: Install Rust
uses: dtolnay/rust-toolchain@stable
with:
components: clippy
- name: Cache cargo
uses: Swatinem/rust-cache@v2
- name: Clippy (tokio-runtime)
run: cargo clippy --all-targets --features=tokio-runtime,file-lock,unprivileged
- name: Clippy (async-io-runtime)
run: cargo clippy --all-targets --features=async-io-runtime,file-lock,unprivileged
- name: Doc
run: cargo doc --features=file-lock,unprivileged,tokio-runtime
freebsd:
name: FreeBSD
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Build on FreeBSD
uses: vmactions/freebsd-vm@v1
with:
release: "15.0"
usesh: true
prepare: |
pkg install -y ca_root_nss curl
fetch https://sh.rustup.rs -o rustup.sh
sh rustup.sh -y --profile=minimal
run: |
. $HOME/.cargo/env || true
rustup component add clippy
cargo clippy --all-targets --features=tokio-runtime,file-lock,unprivileged
cargo clippy --all-targets --features=async-io-runtime,file-lock,unprivileged
cargo doc --features=file-lock,unprivileged,tokio-runtime
minver:
name: MinVer
runs-on: ubuntu-latest
needs: [linux, macos, freebsd]
steps:
- uses: actions/checkout@v4
- name: Install Rust (nightly)
uses: dtolnay/rust-toolchain@nightly
with:
components: clippy
- name: Cache cargo
uses: Swatinem/rust-cache@v2
- name: MinVer check
run: |
cargo update -Zdirect-minimal-versions
cargo clippy --all-targets --features=tokio-runtime,file-lock,unprivileged
cargo clippy --all-targets --features=async-io-runtime,file-lock,unprivileged