name: ci
on:
push:
env:
CARGO_TERM_COLOR: always
jobs:
lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- name: Cargo sort
run: cargo install cargo-sort && cargo sort --check --check-format
- name: Format
run: cargo fmt --check
- name: Clippy
run: cargo clippy --workspace --all-targets -- -D warnings
build_and_test:
name: Rust project - latest
runs-on: ubuntu-latest
strategy:
matrix:
toolchain:
- stable
- beta
- nightly
steps:
- uses: actions/checkout@v6
- run: sudo apt-get update
- run: sudo apt-get install binutils-dev libunwind-dev gnuplot
- run: rustup update ${{ matrix.toolchain }} && rustup default ${{ matrix.toolchain }}
- run: rustup component add rust-src llvm-tools
- run: cargo install cargo-afl honggfuzz
- run: cargo install --path . --verbose
- if: ${{ matrix.toolchain == 'stable' }}
run: diff <(awk '/^```$/ && p{exit} p; /^\$ cargo ziggy/{p=1}' README.md) <(cargo ziggy 2>&1)
- run: cargo test --workspace --verbose -- --show-output