name: CI
on:
push:
branches: [ main, develop ]
pull_request:
branches: [ "*" ]
env:
CARGO_TERM_COLOR: always
RUST_BACKTRACE: 1
jobs:
checks:
name: Checks
uses: ./.github/workflows/ci-checks.yml
secrets: inherit
no_std:
name: no_std builds (host, wasm, bare-metal)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install Rust
uses: dtolnay/rust-toolchain@stable
with:
targets: wasm32-unknown-unknown, aarch64-unknown-none
- name: Build no_std (alloc) on the host
run: cargo build --no-default-features
- name: Build no_std (alloc) for wasm32-unknown-unknown
run: cargo build --no-default-features --target wasm32-unknown-unknown
- name: Build no_std (alloc) for aarch64-unknown-none (bare-metal)
run: cargo build --no-default-features --lib --target aarch64-unknown-none
- name: Clippy no_std (alloc)
run: cargo clippy --no-default-features --lib -- -D warnings
security:
name: Security Audit
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- name: Install cargo-audit
run: cargo install cargo-audit
- name: Run security audit
run: cargo audit
docs:
name: Documentation
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install -y libpq-dev pkg-config libssl-dev
- name: Build documentation
run: cargo doc --no-deps --all-features
env:
RUSTDOCFLAGS: "-D warnings"