name: CI
on:
push:
branches: [main]
pull_request:
branches: [main]
permissions:
contents: read
jobs:
quality:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 - uses: dtolnay/rust-toolchain@4cda84d5c5c54efe2404f9d843567869ab1699d4
with:
toolchain: "1.90.0"
components: rustfmt, clippy
- run: cargo fmt --all -- --check
- run: cargo clippy --lib --bins --examples --all-features -- -D warnings
- run: cargo test --lib
- run: cargo test --all-features --lib
- run: cargo check --examples
platform:
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 - uses: dtolnay/rust-toolchain@4cda84d5c5c54efe2404f9d843567869ab1699d4
with:
toolchain: "1.90.0"
- run: cargo test --lib
- run: cargo check --all-features
features:
strategy:
matrix:
features:
- ""
- "logging-and-visualization"
- "lock-order-graph"
- "stress-test"
- "logging-and-visualization,lock-order-graph,stress-test"
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 - uses: dtolnay/rust-toolchain@4cda84d5c5c54efe2404f9d843567869ab1699d4
with:
toolchain: "1.90.0"
- run: cargo check --features "${{ matrix.features }}"
docs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 - uses: dtolnay/rust-toolchain@4cda84d5c5c54efe2404f9d843567869ab1699d4
with:
toolchain: "1.90.0"
- uses: peaceiris/actions-mdbook@948b432f0fddb61de0806565a7222b36e12e2ee3 with:
mdbook-version: "0.5.4"
- run: scripts/check_docs.sh
- run: cargo package
c-smoke:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 - uses: dtolnay/rust-toolchain@4cda84d5c5c54efe2404f9d843567869ab1699d4
with:
toolchain: "1.90.0"
- run: cargo build --release
- run: >-
cc -Wall -Wextra -Werror -Iinclude c_examples/basic_mutex.c
target/release/libdeloxide.a -pthread -ldl -lm -o target/c-basic-mutex
- run: target/c-basic-mutex
audit:
runs-on: ubuntu-latest
permissions:
contents: read
checks: write
steps:
- uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 - uses: rustsec/audit-check@69366f33c96575abad1ee0dba8212993eecbe998 with:
token: ${{ secrets.GITHUB_TOKEN }}