56 lines
1.5 KiB
YAML
56 lines
1.5 KiB
YAML
name: Rust
|
|
|
|
on: [push, pull_request]
|
|
|
|
jobs:
|
|
vanilla_build:
|
|
name: Vanilla Build
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- run: rustup update
|
|
- name: Build
|
|
run: cargo build --verbose --all
|
|
- name: Run tests
|
|
run: cargo test --verbose --all
|
|
all_features_build:
|
|
name: All Features Enabled Build
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- run: rustup update
|
|
- name: Build
|
|
run: cargo build --verbose --all-features --all
|
|
- name: Run tests
|
|
run: cargo test --verbose --all-features --all
|
|
- name: Build Examples
|
|
run: cargo build --examples --all-features --all
|
|
clippy:
|
|
name: Clippy
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- run: rustup update
|
|
- run: rustup component add clippy
|
|
- run: cargo clippy --all-features --workspace -- -Dclippy::all
|
|
rustfmt:
|
|
name: Check rustfmt
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- run: rustup update
|
|
- run: rustup component add rustfmt --toolchain stable
|
|
- run: cargo +stable fmt --all -- --check
|
|
fuzz:
|
|
name: Run `int_in_range` fuzz target
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- run: rustup update
|
|
- name: "Install nightly"
|
|
run: rustup toolchain install nightly && rustup default nightly
|
|
- name: "Install `cargo-fuzz`"
|
|
run: cargo install cargo-fuzz
|
|
- name: "Fuzz for 3 minutes"
|
|
run: cargo fuzz run int_in_range -- -max_total_time=$((3 * 60))
|