feat(core): unify engine home under ~/.coven with in-place migration (Phase 4, Track C) #34
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Rust CI | |
| on: | |
| pull_request: | |
| paths: | |
| - 'src-rust/**' | |
| - '.github/workflows/rust-ci.yml' | |
| workflow_dispatch: | |
| concurrency: | |
| group: rust-ci-${{ github.ref }} | |
| cancel-in-progress: true | |
| permissions: | |
| contents: read | |
| env: | |
| CARGO_TERM_COLOR: always | |
| jobs: | |
| rust: | |
| name: Format, lint, and test | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 45 | |
| steps: | |
| - uses: actions/checkout@v5 | |
| with: | |
| persist-credentials: false | |
| - name: Install Rust toolchain | |
| uses: dtolnay/rust-toolchain@stable | |
| with: | |
| components: rustfmt, clippy | |
| - name: Install system dependencies | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y libasound2-dev pkg-config | |
| - name: Cache cargo registry and build output | |
| uses: actions/cache@v5 | |
| with: | |
| path: | | |
| ~/.cargo/registry | |
| ~/.cargo/git | |
| src-rust/target | |
| key: rust-ci-cargo-${{ runner.os }}-${{ hashFiles('src-rust/Cargo.lock') }} | |
| restore-keys: rust-ci-cargo-${{ runner.os }}- | |
| - name: Check formatting | |
| working-directory: src-rust | |
| run: cargo fmt --all -- --check | |
| - name: Check workspace | |
| working-directory: src-rust | |
| run: cargo check --workspace --locked | |
| - name: Run Clippy | |
| working-directory: src-rust | |
| run: cargo clippy --workspace --all-targets --locked -- -D warnings | |
| - name: Run tests | |
| working-directory: src-rust | |
| run: cargo test --workspace --locked --quiet | |
| coven-contract: | |
| name: Coven engine contract (non-blocking until coven#346 lands) | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 45 | |
| # Non-blocking during bootstrap: coven `main` gains the engine contract | |
| # tests only when OpenCoven/coven#346 + the engine-lock PR merge. Until then | |
| # `cargo test contract` on coven matches zero tests and passes. Once coven | |
| # main carries the suite and this job is proven stable, remove | |
| # `continue-on-error` to make engine contract breaks a hard gate. | |
| continue-on-error: true | |
| steps: | |
| - uses: actions/checkout@v5 | |
| with: | |
| persist-credentials: false | |
| - name: Install Rust toolchain | |
| uses: dtolnay/rust-toolchain@stable | |
| - name: Install system dependencies (engine + coven) | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y libasound2-dev pkg-config libopenblas-dev | |
| - name: Build the engine | |
| working-directory: src-rust | |
| run: cargo build --release -p claurst --locked | |
| - name: Check out OpenCoven/coven | |
| uses: actions/checkout@v5 | |
| with: | |
| repository: OpenCoven/coven | |
| path: coven-main | |
| persist-credentials: false | |
| - name: Run coven's engine contract tests against this engine | |
| working-directory: coven-main | |
| run: | | |
| ENGINE="$GITHUB_WORKSPACE/src-rust/target/release/coven-code" | |
| echo "engine: $ENGINE"; "$ENGINE" --version | |
| COVEN_ENGINE_BIN="$ENGINE" cargo test -p coven-cli --locked contract -- --nocapture |