@@ -42,16 +42,12 @@ jobs:
4242 uses : dtolnay/rust-toolchain@stable
4343 with :
4444 components : rustfmt, clippy
45+ - name : Install just
46+ uses : extractions/setup-just@v3
4547 - name : Cache Dependencies
4648 uses : Swatinem/rust-cache@v2
47- - name : cargo fmt (check)
48- run : cargo fmt -- --check -l
49- - name : Build
50- run : cargo build
51- - name : Test
52- run : cargo test -- --nocapture --quiet
53- - name : cargo clippy
54- run : cargo clippy -- -D warnings
49+ - name : CI (check + test)
50+ run : just ci
5551
5652 msrv :
5753 name : MSRV
@@ -92,22 +88,21 @@ jobs:
9288 uses : dtolnay/rust-toolchain@nightly
9389 - name : Install cargo-fuzz
9490 run : cargo install cargo-fuzz --locked
91+ - name : Install just
92+ uses : extractions/setup-just@v3
9593 - name : Cache Dependencies
9694 uses : Swatinem/rust-cache@v2
9795 with :
9896 workspaces : fuzz
9997 - name : Generate seed corpus
100- run : cargo run --manifest-path fuzz/Cargo.toml --bin generate-corpus
98+ run : just generate-corpus
10199 - name : Fuzz all targets (2 minutes each)
102- run : |
103- mkdir -p fuzz-logs
104- for target in $(cargo +nightly fuzz list); do
105- echo "--- Fuzzing $target (2 min) ---"
106- cargo +nightly fuzz run "$target" -- -max_total_time=120 \
107- > "fuzz-logs/$target.log" 2>&1 \
108- && echo " $target: OK" \
109- || { echo "::error::Fuzzer $target failed"; cat "fuzz-logs/$target.log"; exit 1; }
110- # Print final stats line
111- tail -1 "fuzz-logs/$target.log"
112- done
113- working-directory : fuzz
100+ run : just fuzz-all
101+ - name : Upload fuzz artifacts
102+ if : failure()
103+ uses : actions/upload-artifact@v4
104+ with :
105+ name : fuzz-artifacts
106+ path : |
107+ fuzz/artifacts/
108+ target/fuzz-logs/
0 commit comments