Prototype collective differences through reduce replay #1341
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: "Test Suite" | |
| on: | |
| push: | |
| branches: | |
| - master | |
| pull_request: | |
| jobs: | |
| msrv: | |
| name: Determine MSRV | |
| runs-on: ubuntu-latest | |
| outputs: | |
| msrv: ${{ steps.msrv.outputs.msrv }} | |
| steps: | |
| - uses: actions/checkout@v7 | |
| - id: msrv | |
| run: echo "msrv=$(grep '^rust-version' Cargo.toml | sed 's/.*"\(.*\)"/\1/')" >> "$GITHUB_OUTPUT" | |
| test: | |
| needs: msrv | |
| strategy: | |
| matrix: | |
| os: | |
| - ubuntu | |
| - macos | |
| # Linking fails on Windows. | |
| # - windows | |
| toolchain: | |
| - stable | |
| - ${{ needs.msrv.outputs.msrv }} | |
| name: cargo test on ${{ matrix.os }}, rust ${{ matrix.toolchain }} | |
| runs-on: ${{ matrix.os }}-latest | |
| steps: | |
| - uses: actions/checkout@v7 | |
| - uses: actions-rust-lang/setup-rust-toolchain@v1 | |
| with: | |
| toolchain: ${{ matrix.toolchain }} | |
| - name: Cargo test | |
| run: cargo test --workspace --all-targets | |
| - name: Cargo doc test | |
| run: cargo test --doc | |
| # One small server-backed workload; no data download or timing thresholds. | |
| - name: LDBC-derived correctness smoke | |
| if: matrix.os == 'ubuntu' && matrix.toolchain == 'stable' | |
| run: | | |
| cargo build -p ddir-server | |
| for workers in 1 4; do | |
| python3 interactive/server/bench/ldbc/run.py --server target/debug/ddir_server \ | |
| --workers "$workers" --rounds 1 --warmup 0 --batch-size 9 --changes 1 | |
| done | |
| - name: Complete SNB read catalogue | |
| if: matrix.os == 'ubuntu' && matrix.toolchain == 'stable' | |
| run: | | |
| python3 interactive/server/bench/ldbc/test_harness.py | |
| python3 interactive/server/bench/ldbc/test_snb.py | |
| for workers in 1 4; do | |
| python3 interactive/server/bench/ldbc/suite.py --server target/debug/ddir_server \ | |
| --workers "$workers" --rounds 1 --warmup 0 | |
| done | |
| python3 interactive/server/bench/ldbc/suite.py --server target/debug/ddir_server \ | |
| --mode maintained --workers 4 --rounds 1 --warmup 0 | |
| # The explanation suite's heavier sweeps (soundness regression, fuzz) | |
| # are #[ignore]d for local debug runs but must gate merges. The metric | |
| # report is skipped (it prints, it does not assert). | |
| - name: Explanation suite (release, incl. ignored) | |
| run: cargo test --release -p interactive --test explain -- --include-ignored --skip report_demand_excess | |
| # Check for clippy warnings | |
| clippy: | |
| name: Cargo clippy | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v7 | |
| - uses: actions-rust-lang/setup-rust-toolchain@v1 | |
| with: | |
| components: clippy | |
| - name: Cargo clippy | |
| run: cargo clippy --workspace --all-targets | |
| env: | |
| RUSTFLAGS: "" # Don't make test fail on clippy |