name: Rust
on: [push, pull_request]
env:
CARGO_TERM_COLOR: always
jobs:
fmt:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Install rustfmt
run: rustup component add rustfmt
- name: Check style
run: cargo fmt --all -- --check
clippy:
runs-on: ubuntu-latest
env:
RUSTFLAGS: -D warnings -D absolute_paths_not_starting_with_crate -D disjoint_capture_drop_reorder -D elided_lifetimes_in_paths -D explicit_outlives_requirements -D macro_use_extern_crate -D meta_variable_misuse -D missing_abi -D missing_copy_implementations -D missing_debug_implementations -D non_ascii_idents -D pointer_structural_match -D semicolon_in_expressions_from_macros -D single_use_lifetimes -D trivial_casts -D trivial_numeric_casts -D unaligned_references -D unreachable_pub -D unused_extern_crates -D unused_import_braces -D unused_lifetimes -D unused_qualifications -D unsafe_op_in_unsafe_fn
steps:
- uses: actions/checkout@v2
- name: Install clippy
run: rustup component add clippy
- uses: actions-rs/clippy-check@v1
with:
token: ${{ secrets.GITHUB_TOKEN }}
args: -- -D clippy::pedantic -D clippy::all
doc:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Build the documentation for testing
run: cargo doc
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Build
run: cargo build --verbose
- name: Run tests
run: cargo test --verbose