feat(graph): Backend::MailboxSoa — classid node-match + CLAM/CAKES neighborhood (Inc 0) #861
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: Build | |
| on: | |
| push: | |
| branches: | |
| - main | |
| pull_request: | |
| paths: | |
| - crates/** | |
| - Cargo.toml | |
| - Cargo.lock | |
| - .github/workflows/build.yml | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} | |
| cancel-in-progress: true | |
| env: | |
| CARGO_TERM_COLOR: always | |
| RUSTFLAGS: "-C debuginfo=1 -C target-cpu=x86-64-v3" | |
| RUST_BACKTRACE: "1" | |
| CARGO_INCREMENTAL: "0" | |
| jobs: | |
| linux-build: | |
| runs-on: ubuntu-24.04 | |
| timeout-minutes: 30 | |
| env: | |
| # Override the workflow-level debuginfo=1 for this job (parity with the | |
| # `test` + `test-with-coverage` jobs in rust-test.yml, TD-CI-TEST-JOB-DEBUGINFO0 | |
| # / TD-CI-COVERAGE-MOLD-1). This job links the SAME full lance+datafusion | |
| # test-binary set at the SAME disk/RSS cliff and was the one job still | |
| # missing the mitigation — it flaked twice with a hard `rust-lld` SIGBUS | |
| # (signal 7 = object file truncated when the link partition fills mid-link, | |
| # crashing in llvm::parallelFor). debuginfo carries no value in CI (no | |
| # debugger is attached); dropping it cut per-binary link footprint ~73% | |
| # in the sibling jobs. Note: a job-level RUSTFLAGS gives this job its own | |
| # Swatinem cache key — the first run after this change repopulates it. | |
| RUSTFLAGS: "-C debuginfo=0 -C target-cpu=x86-64-v3" | |
| defaults: | |
| run: | |
| working-directory: lance-graph | |
| strategy: | |
| matrix: | |
| toolchain: | |
| - stable | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| path: lance-graph | |
| - name: Checkout AdaWorldAPI/ndarray (sibling dependency) | |
| uses: actions/checkout@v4 | |
| with: | |
| repository: AdaWorldAPI/ndarray | |
| path: ndarray | |
| - name: Setup rust toolchain | |
| run: | | |
| rustup toolchain install ${{ matrix.toolchain }} | |
| rustup default ${{ matrix.toolchain }} | |
| - name: Setup mold linker | |
| # Parity with rust-test.yml: the heavy lance+datafusion build + test | |
| # binaries hit the GNU-ld/rust-lld RSS+disk cliff at the link step | |
| # (intermittent SIGBUS). mold links them fast + low-memory. | |
| uses: rui314/setup-mold@9c9c13bf4c3f1adef0cc596abc155580bcb04444 # v1 | |
| - uses: Swatinem/rust-cache@v2 | |
| with: | |
| shared-key: "lance-graph-deps" | |
| workspaces: | | |
| lance-graph/crates/lance-graph | |
| - name: Install dependencies | |
| run: | | |
| sudo apt update | |
| sudo apt install -y protobuf-compiler | |
| - name: Build lance-graph | |
| run: cargo build --manifest-path crates/lance-graph/Cargo.toml | |
| - name: Build tests | |
| run: cargo test --manifest-path crates/lance-graph/Cargo.toml --no-run | |
| - name: Run tests | |
| run: cargo test --manifest-path crates/lance-graph/Cargo.toml | |
| - name: Check benchmarks | |
| run: cargo check --manifest-path crates/lance-graph/Cargo.toml --benches |