restructure CI into preflight
This commit is contained in:
+17
-16
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user