feat!: migrate FTS from tantivy to lance-index (#1483) #6
This file contains 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: Rust | |
on: | |
push: | |
branches: | |
- main | |
pull_request: | |
paths: | |
- Cargo.toml | |
- rust/** | |
- .github/workflows/rust.yml | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} | |
cancel-in-progress: true | |
env: | |
# This env var is used by Swatinem/rust-cache@v2 for the cache | |
# key, so we set it to make sure it is always consistent. | |
CARGO_TERM_COLOR: always | |
# Disable full debug symbol generation to speed up CI build and keep memory down | |
# "1" means line tables only, which is useful for panic tracebacks. | |
RUSTFLAGS: "-C debuginfo=1" | |
RUST_BACKTRACE: "1" | |
jobs: | |
lint: | |
timeout-minutes: 30 | |
runs-on: ubuntu-22.04 | |
defaults: | |
run: | |
shell: bash | |
working-directory: rust | |
env: | |
# Need up-to-date compilers for kernels | |
CC: gcc-12 | |
CXX: g++-12 | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
lfs: true | |
- uses: Swatinem/rust-cache@v2 | |
with: | |
workspaces: rust | |
- name: Install dependencies | |
run: | | |
sudo apt update | |
sudo apt install -y protobuf-compiler libssl-dev | |
- name: Run format | |
run: cargo fmt --all -- --check | |
- name: Run clippy | |
run: cargo clippy --all --all-features -- -D warnings | |
linux: | |
timeout-minutes: 30 | |
# To build all features, we need more disk space than is available | |
# on the GitHub-provided runner. This is mostly due to the the | |
# sentence-transformers feature. | |
runs-on: warp-ubuntu-latest-x64-4x | |
defaults: | |
run: | |
shell: bash | |
working-directory: rust | |
env: | |
# Need up-to-date compilers for kernels | |
CC: gcc-12 | |
CXX: g++-12 | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
lfs: true | |
- uses: Swatinem/rust-cache@v2 | |
with: | |
workspaces: rust | |
- name: Install dependencies | |
run: | | |
sudo apt update | |
sudo apt install -y protobuf-compiler libssl-dev | |
- name: Start S3 integration test environment | |
working-directory: . | |
run: docker compose up --detach --wait | |
- name: Build | |
run: cargo build --all-features | |
- name: Run tests | |
run: cargo test --all-features | |
- name: Run examples | |
run: cargo run --example simple | |
macos: | |
timeout-minutes: 30 | |
strategy: | |
matrix: | |
mac-runner: [ "macos-13", "macos-14" ] | |
runs-on: "${{ matrix.mac-runner }}" | |
defaults: | |
run: | |
shell: bash | |
working-directory: rust | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
lfs: true | |
- name: CPU features | |
run: sysctl -a | grep cpu | |
- uses: Swatinem/rust-cache@v2 | |
with: | |
workspaces: rust | |
- name: Install dependencies | |
run: brew install protobuf | |
- name: Build | |
run: cargo build --all-features | |
- name: Run tests | |
# Run with everything except the integration tests. | |
run: cargo test --features remote,fp16kernels | |
windows: | |
runs-on: windows-2022 | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: Swatinem/rust-cache@v2 | |
with: | |
workspaces: rust | |
- name: Install Protoc v21.12 | |
working-directory: C:\ | |
run: | | |
New-Item -Path 'C:\protoc' -ItemType Directory | |
Set-Location C:\protoc | |
Invoke-WebRequest https://github.com/protocolbuffers/protobuf/releases/download/v21.12/protoc-21.12-win64.zip -OutFile C:\protoc\protoc.zip | |
7z x protoc.zip | |
Add-Content $env:GITHUB_PATH "C:\protoc\bin" | |
shell: powershell | |
- name: Run tests | |
run: | | |
$env:VCPKG_ROOT = $env:VCPKG_INSTALLATION_ROOT | |
cargo build | |
cargo test |