restructure CI into preflight

This commit is contained in:
Matt Hess
2026-02-27 19:22:34 +00:00
parent 098f8a3ab9
commit 9bf50947dd
+17 -16
View File
@@ -11,7 +11,7 @@ env:
RUSTFLAGS: "-Dwarnings"
jobs:
# ── Stage 1: Compile-time checks ────────────────────────────────────
# ── Stage 1: Preflight ───────────────────────────────────────────────
fmt:
name: Formatting
runs-on: ubuntu-latest
@@ -33,18 +33,6 @@ jobs:
- uses: Swatinem/rust-cache@v2
- run: cargo clippy --workspace --all-targets
compile:
name: Compile workspace
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- uses: Swatinem/rust-cache@v2
- name: Build all crates
run: cargo build --workspace
- name: Build in release mode
run: cargo build --workspace --release
compile-wasm:
name: Compile WASM target
runs-on: ubuntu-latest
@@ -57,7 +45,21 @@ jobs:
- name: Check crypto crate compiles for WASM
run: cargo check -p salvium-crypto --target wasm32-unknown-unknown
# ── Stage 2: Unit tests (per-crate, parallel) ───────────────────────
# ── Stage 2: Compile workspace ───────────────────────────────────────
compile:
name: Compile workspace
needs: [fmt, clippy, compile-wasm]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- uses: Swatinem/rust-cache@v2
- name: Build all crates
run: cargo build --workspace
- name: Build in release mode
run: cargo build --workspace --release
# ── Stage 3: Tests + docs ───────────────────────────────────────────
test-types:
name: "Test: types + consensus rules"
needs: [compile]
@@ -114,7 +116,6 @@ jobs:
- name: salvium-rpc
run: cargo test -p salvium-rpc -- --nocapture
# ── Stage 3: Doc tests + documentation build ────────────────────────
docs:
name: Documentation
needs: [compile]
@@ -137,8 +138,8 @@ jobs:
needs:
- fmt
- clippy
- compile
- compile-wasm
- compile
- test-types
- test-crypto
- test-wallet