ci(deps): bump actions/checkout from 6 to 7 in the github-actions group #126
Workflow file for this run
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-kv cross-platform CI | |
| # | |
| # Pluggable KV-cache engines (markov-rs, unlimited-context, turbo-quant, | |
| # apollo). The crate is model-architecture agnostic: tests use synthetic | |
| # `larql_inference::test_utils` fixtures, no real model weights, no | |
| # platform-specific GPU backends. Same surface runs on Linux, Windows, | |
| # and macOS. | |
| name: larql-kv | |
| on: | |
| push: | |
| branches: [main] | |
| paths: | |
| - 'crates/larql-kv/**' | |
| - 'crates/larql-inference/src/test_utils.rs' | |
| - 'crates/larql-inference/src/forward/**' | |
| - 'crates/larql-inference/src/attention/**' | |
| - 'crates/larql-inference/src/ffn/**' | |
| - 'crates/larql-inference/src/residual.rs' | |
| - 'crates/larql-inference/src/vindex/**' | |
| - 'crates/larql-inference/src/model.rs' | |
| - 'crates/larql-inference/src/layer_graph/pipeline_layer.rs' | |
| - 'Cargo.toml' | |
| - 'Cargo.lock' | |
| - 'Makefile' | |
| - '.github/workflows/larql-kv.yml' | |
| pull_request: | |
| branches: [main] | |
| paths: | |
| - 'crates/larql-kv/**' | |
| - 'crates/larql-inference/src/test_utils.rs' | |
| - 'crates/larql-inference/src/forward/**' | |
| - 'crates/larql-inference/src/attention/**' | |
| - 'crates/larql-inference/src/ffn/**' | |
| - 'crates/larql-inference/src/residual.rs' | |
| - 'crates/larql-inference/src/vindex/**' | |
| - 'crates/larql-inference/src/model.rs' | |
| - 'crates/larql-inference/src/layer_graph/pipeline_layer.rs' | |
| - 'Cargo.toml' | |
| - 'Cargo.lock' | |
| - 'Makefile' | |
| - '.github/workflows/larql-kv.yml' | |
| workflow_dispatch: {} | |
| env: | |
| LARQL_KV_COVERAGE_MIN: 85 | |
| 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`. See its build.rs for the rationale. | |
| # protoc on PATH satisfies the `cfg(not(windows))` skip in | |
| # `larql-router-protocol`'s build.rs. Use chocolatey rather than | |
| # `arduino/setup-protoc@v3` — the action hits a GitHub API path | |
| # that intermittently fails with `Bad credentials` even when | |
| # `repo-token` is passed (Node-20 deprecation surface also). | |
| # Chocolatey is preinstalled on the windows-latest runner. | |
| - name: Install protoc (Windows) | |
| if: runner.os == 'Windows' | |
| shell: pwsh | |
| run: choco install protoc -y --no-progress | |
| - name: Cache cargo registry + build artefacts | |
| uses: actions/cache@v5 | |
| with: | |
| path: | | |
| ~/.cargo/registry | |
| ~/.cargo/git | |
| target | |
| key: ${{ runner.os }}-cargo-kv-${{ hashFiles('**/Cargo.lock') }} | |
| restore-keys: | | |
| ${{ runner.os }}-cargo-kv- | |
| - name: Format check | |
| run: cargo fmt -p larql-kv -- --check | |
| - name: Check all targets | |
| run: cargo check -p larql-kv --all-targets | |
| - name: Check examples | |
| run: cargo check -p larql-kv --examples | |
| - name: Clippy | |
| # `--no-deps` keeps lints scoped to larql-kv itself; otherwise | |
| # any pre-existing clippy debt in larql-inference (a transitive | |
| # dep) would surface here even though it's not this crate's | |
| # concern. Other crates' workflows don't need this because they | |
| # don't depend on larql-inference. | |
| run: cargo clippy -p larql-kv --all-targets --no-deps -- -D warnings | |
| - name: Tests | |
| run: cargo test -p larql-kv | |
| - name: Benchmark compile/tests | |
| run: cargo test -p larql-kv --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-kv --summary-only --fail-under-lines "$LARQL_KV_COVERAGE_MIN" | |
| - name: Coverage policy | |
| run: | | |
| mkdir -p coverage/larql-kv | |
| cargo llvm-cov report --package larql-kv --json --summary-only --output-path coverage/larql-kv/summary.json | |
| python3 scripts/check_coverage_policy.py coverage/larql-kv/summary.json crates/larql-kv/coverage-policy.json |