PARETO-1 rung A: the K-quant path, and the instrument it is measured with #678
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
| # larql-lql cross-platform CI | |
| # | |
| # LQL parser, executor, and REPL. The crate is model/architecture | |
| # agnostic — parser tests are pure, executor integration tests use | |
| # `mockito` to fake the Remote backend, and the metal feature is opt-in | |
| # (default = []). Same surface runs on Linux, Windows, and macOS. | |
| name: larql-lql | |
| on: | |
| push: | |
| branches: [main] | |
| paths: | |
| - 'crates/larql-lql/**' | |
| - 'crates/larql-core/**' | |
| - 'crates/larql-vindex/**' | |
| - 'crates/larql-models/**' | |
| - 'crates/larql-inference/src/**' | |
| - 'Cargo.toml' | |
| - 'Cargo.lock' | |
| - 'Makefile' | |
| - '.github/workflows/larql-lql.yml' | |
| pull_request: | |
| branches: [main] | |
| paths: | |
| - 'crates/larql-lql/**' | |
| - 'crates/larql-core/**' | |
| - 'crates/larql-vindex/**' | |
| - 'crates/larql-models/**' | |
| - 'crates/larql-inference/src/**' | |
| - 'Cargo.toml' | |
| - 'Cargo.lock' | |
| - 'Makefile' | |
| - '.github/workflows/larql-lql.yml' | |
| workflow_dispatch: {} | |
| jobs: | |
| test: | |
| name: test - ${{ matrix.os }} | |
| runs-on: ${{ matrix.os }} | |
| timeout-minutes: 35 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: [ubuntu-latest, windows-latest, macos-14] | |
| steps: | |
| - uses: actions/checkout@v7 | |
| - name: Install stable Rust | |
| uses: dtolnay/rust-toolchain@stable | |
| with: | |
| components: clippy, rustfmt | |
| - name: Install OpenBLAS (Linux) | |
| if: runner.os == 'Linux' | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y libopenblas-dev pkg-config | |
| - name: Install OpenBLAS (Windows) | |
| if: runner.os == 'Windows' | |
| shell: pwsh | |
| run: | | |
| $vcpkgRoot = $env:VCPKG_INSTALLATION_ROOT | |
| if (-not $vcpkgRoot) { $vcpkgRoot = "C:\vcpkg" } | |
| "VCPKG_ROOT=$vcpkgRoot" | Out-File -FilePath $env:GITHUB_ENV -Append | |
| & "$vcpkgRoot\vcpkg.exe" install openblas:x64-windows | |
| # protoc on PATH satisfies the `cfg(not(windows))` skip in | |
| # `larql-router-protocol` (pulled in via larql-inference). See | |
| # its build.rs for the rationale. | |
| - name: Install protoc (Windows) | |
| if: runner.os == 'Windows' | |
| shell: pwsh | |
| run: choco install protoc -y --no-progress | |
| - name: Cache cargo registry (downloads only, never target/) | |
| uses: actions/cache@v6 | |
| with: | |
| path: | | |
| ~/.cargo/registry | |
| ~/.cargo/git | |
| key: ${{ runner.os }}-cargo-reg2-lql-${{ hashFiles('**/Cargo.lock') }} | |
| restore-keys: | | |
| ${{ runner.os }}-cargo-reg2-lql- | |
| - name: No compiled workspace artefacts may be restored | |
| shell: bash | |
| run: | | |
| # The cache above carries downloads only. A target/ restored from | |
| # another commit can satisfy a link against stale code, so a green | |
| # matrix would be evidence about an artefact that is not in this | |
| # commit. Fail loudly rather than build on one. | |
| if [ -e target ]; then | |
| echo "::error::target/ was restored from cache - the cache key or path is wrong" | |
| exit 1 | |
| fi | |
| - name: Format check | |
| run: cargo fmt -p larql-lql -- --check | |
| - name: Check all targets | |
| run: cargo check -p larql-lql --all-targets | |
| - name: Clippy | |
| # `--no-deps` keeps lints scoped to larql-lql itself; otherwise | |
| # pre-existing clippy debt in `larql-inference` (a transitive | |
| # dep) would surface here. | |
| run: cargo clippy -p larql-lql --all-targets --no-deps -- -D warnings | |
| - name: Tests | |
| run: cargo test -p larql-lql | |
| - name: Benchmark compile/tests | |
| run: cargo test -p larql-lql --benches | |
| coverage: | |
| name: coverage - ubuntu | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 35 | |
| steps: | |
| - uses: actions/checkout@v7 | |
| - name: Install stable Rust | |
| uses: dtolnay/rust-toolchain@stable | |
| - name: Install OpenBLAS | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y libopenblas-dev pkg-config | |
| - name: Install cargo-llvm-cov | |
| uses: taiki-e/install-action@cargo-llvm-cov | |
| - name: Coverage summary | |
| run: cargo llvm-cov --package larql-lql --summary-only |