From 2b665deaf68de5e7dd71fccab0f3bbc76c8bcc44 Mon Sep 17 00:00:00 2001 From: ruvnet Date: Mon, 3 Aug 2026 21:50:55 -0400 Subject: [PATCH] ci: cover rvforge-registry and rvforge-reader in the RVForge matrix Registry tests/clippy/fmt ride the existing core job; the reader gets its own 3-OS job run inside its standalone workspace directory. Co-Authored-By: claude-flow Claude-Session: https://claude.ai/code/session_01ParP55bZs2iTGEGvpnUecx --- .github/workflows/rvforge-ci.yml | 57 ++++++++++++++++++++++++++++++-- 1 file changed, 54 insertions(+), 3 deletions(-) diff --git a/.github/workflows/rvforge-ci.yml b/.github/workflows/rvforge-ci.yml index c68a63e4b..08cdfb431 100644 --- a/.github/workflows/rvforge-ci.yml +++ b/.github/workflows/rvforge-ci.yml @@ -9,6 +9,8 @@ on: - 'npm/packages/forge/**' - 'npm/packages/rvforge/**' - 'crates/rvf-forge-core/**' + - 'crates/rvforge-registry/**' + - 'crates/rvforge-reader/**' - '.github/workflows/rvforge-ci.yml' pull_request: branches: @@ -17,6 +19,8 @@ on: - 'npm/packages/forge/**' - 'npm/packages/rvforge/**' - 'crates/rvf-forge-core/**' + - 'crates/rvforge-registry/**' + - 'crates/rvforge-reader/**' - '.github/workflows/rvforge-ci.yml' workflow_dispatch: @@ -103,15 +107,62 @@ jobs: with: workspaces: '. -> target' - - name: Test + - name: Test rvf-forge-core if: steps.crate.outputs.present == 'true' run: cargo test -p rvf-forge-core - - name: Clippy + - name: Clippy rvf-forge-core if: steps.crate.outputs.present == 'true' run: cargo clippy -p rvf-forge-core -- -D warnings - - name: Format check + - name: Format check rvf-forge-core if: steps.crate.outputs.present == 'true' shell: bash run: cargo fmt -p rvf-forge-core -- --check + + - name: Test rvforge-registry + if: steps.crate.outputs.present == 'true' + shell: bash + run: | + if [ -f crates/rvforge-registry/Cargo.toml ]; then + cargo test -p rvforge-registry + cargo clippy -p rvforge-registry -- -D warnings + cargo fmt -p rvforge-registry -- --check + fi + + reader: + name: rvforge-reader (${{ matrix.os }}) + strategy: + fail-fast: false + matrix: + os: [ubuntu-latest, windows-latest, macos-latest] + runs-on: ${{ matrix.os }} + steps: + - uses: actions/checkout@v4 + + - name: Check crate exists + id: reader + shell: bash + run: | + if [ -f crates/rvforge-reader/Cargo.toml ]; then + echo "present=true" >> "$GITHUB_OUTPUT" + else + echo "present=false" >> "$GITHUB_OUTPUT" + fi + + - uses: dtolnay/rust-toolchain@stable + if: steps.reader.outputs.present == 'true' + + - uses: Swatinem/rust-cache@v2 + if: steps.reader.outputs.present == 'true' + with: + workspaces: 'crates/rvforge-reader -> crates/rvforge-reader/target' + + # Standalone workspace: run inside the crate dir, not via -p from root + - name: Test rvforge-reader + if: steps.reader.outputs.present == 'true' + shell: bash + working-directory: crates/rvforge-reader + run: | + cargo test + cargo check