name: CI on: push: branches: [main] pull_request: branches: [main] env: CARGO_TERM_COLOR: always RUSTFLAGS: -Dwarnings jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Install Rust uses: dtolnay/rust-toolchain@stable with: components: clippy, rustfmt - name: Cache cargo uses: actions/cache@v4 with: path: | ~/.cargo/registry ~/.cargo/git target key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} restore-keys: ${{ runner.os }}-cargo- - name: Check formatting run: cargo fmt --all --check - name: Build (default features) run: cargo build --release -p bascule-server - name: Build (all features) run: cargo build --release -p bascule-server --features agent-id - name: Clippy run: cargo clippy --all-targets --all-features -- -D warnings - name: Tests run: cargo test --all - name: Binary size run: ls -lh target/release/bascule - name: Substrate contamination check run: | count=$(grep -c "substrate\|chronicle\|gsap\|hfl\|metakernel" Cargo.lock || true) if [ "$count" -gt 0 ]; then echo "ERROR: Substrate dependencies found in Cargo.lock" exit 1 fi