name: Test
on:
pull_request:
push:
workflow_call:
env:
CARGO_TERM_COLOR: always
RUST_BACKTRACE: 1
RUSTFLAGS: '-C debuginfo=0'
jobs:
build:
name: Build [${{ matrix.profile }} ${{ matrix.args }}]
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
rust: [stable]
profile: [dev, release]
args: ["--workspace --all-targets"]
include:
- rust: stable
profile: dev
args: "--package=maily --no-default-features"
- rust: stable
profile: dev
args: "--package=maily --features=config"
- rust: stable
profile: dev
args: "--package=maily --features=pgp"
- rust: stable
profile: dev
args: "--package=maily --features=tracing"
- rust: stable
profile: dev
args: "--package=maily --features=config,pgp,tracing"
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@master
with:
toolchain: ${{ matrix.rust }}
- run: sudo apt-get install -y pkg-config nettle-dev
- name: Build
run: |
cargo build --profile=${{ matrix.profile }} ${{ matrix.args }}
test:
name: Test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- run: sudo apt-get install -y pkg-config nettle-dev
- name: Test
run: cargo test --workspace --all-features
clippy:
name: Lint with clippy
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- run: sudo apt-get install -y pkg-config nettle-dev
- run: cargo clippy --no-deps --workspace --all-targets --all-features --tests -- -A unknown_lints -A deprecated -D warnings
rustdoc:
name: Generate documentation
runs-on: ubuntu-latest
env:
RUSTDOCFLAGS: '-D warnings -D rustdoc::broken_intra_doc_links'
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- run: cargo doc --no-deps