diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 1d81f17..f36b31e 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -161,6 +161,16 @@ jobs: OMNIGRAPH_UPDATE_OPENAPI: ${{ (github.event_name == 'pull_request' && github.event.pull_request.head.repo.full_name == github.repository) && '1' || '' }} run: cargo test --workspace --locked + - name: Run failpoints feature test + if: needs.classify_changes.outputs.run_full_ci == 'true' + # Run after the workspace test so the build cache is warm — + # enabling --features failpoints is just an incremental rebuild + # of omnigraph-engine + the small `fail` crate, not the full + # dep tree (lance, datafusion). A separate job with its own + # cache key would be a fresh ~20min build on first run; this + # is ~30s on a warm cache. + run: cargo test --locked -p omnigraph-engine --features failpoints --test failpoints + - name: Commit regenerated openapi.json to PR branch if: | needs.classify_changes.outputs.run_full_ci == 'true' && @@ -239,48 +249,6 @@ jobs: if: needs.classify_changes.outputs.run_full_ci == 'true' run: cargo test --locked -p omnigraph-server --features aws - test_failpoints_feature: - name: Test omnigraph-engine --features failpoints - needs: classify_changes - runs-on: ubuntu-latest - timeout-minutes: 30 - permissions: - contents: read - env: - CARGO_TERM_COLOR: always - steps: - - name: Skip for text-only changes - if: needs.classify_changes.outputs.run_full_ci != 'true' - run: echo "Text-only change detected; skipping failpoints feature build." - - - name: Checkout source - if: needs.classify_changes.outputs.run_full_ci == 'true' - uses: actions/checkout@v5.0.1 - - - name: Install system dependencies - if: needs.classify_changes.outputs.run_full_ci == 'true' - run: | - sudo apt-get update - sudo apt-get install -y protobuf-compiler libprotobuf-dev - - - name: Install Rust stable - if: needs.classify_changes.outputs.run_full_ci == 'true' - uses: dtolnay/rust-toolchain@stable - with: - toolchain: stable - - - name: Cache Rust build data - if: needs.classify_changes.outputs.run_full_ci == 'true' - uses: Swatinem/rust-cache@v2 - with: - workspaces: | - . -> target - key: failpoints-feature - - - name: Run failpoints test suite - if: needs.classify_changes.outputs.run_full_ci == 'true' - run: cargo test --locked -p omnigraph-engine --features failpoints --test failpoints - rustfs_integration: name: RustFS S3 Integration needs: