Files
qdrant/.github/workflows/edge-rust-release.yml
xzfc 628195fafe Remove shard dependency on api (#8284)
* Move `DenseVector`/`MultiDenseVector` from `api` to `segment`

* Move `OrderByInterface` from `api` to `segment`

Reason: it's used in `edge` which shouldn't depend on `api`.

* Make `shard` -> `api` dependency optional

* Remove `api` from the amalgamation

* Don't install protoc in edge Actions
2026-03-05 04:38:02 +00:00

87 lines
1.8 KiB
YAML

name: Qdrant Edge Rust Release
on:
workflow_dispatch:
inputs:
publish:
description: 'Publish to crates.io'
type: boolean
default: false
required: true
jobs:
edge-rust-check:
name: Check Qdrant Edge Rust Package [${{ matrix.os }}]
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os:
- macos-latest
- ubuntu-24.04-arm
- ubuntu-latest
- windows-11-arm
- windows-latest
steps:
- name: Install Rust
uses: dtolnay/rust-toolchain@stable
- name: Install mold
if: startsWith(matrix.os, 'ubuntu')
uses: rui314/setup-mold@v1
- name: Install uv
uses: astral-sh/setup-uv@v7
- name: Install ast-grep
run: npm install --global @ast-grep/cli
- name: Checkout Qdrant
uses: actions/checkout@v6
- name: Restore Rust build cache
uses: Swatinem/rust-cache@v2
- name: Amalgamate
run: uv run lib/edge/publish/amalgamate.py
- name: Cargo build
working-directory: lib/edge/publish
run: cargo build -p examples
publish:
name: Publish to crates.io
runs-on: ubuntu-latest
needs:
- edge-rust-check
if: inputs.publish
steps:
- name: Install Rust
uses: dtolnay/rust-toolchain@stable
- name: Install uv
uses: astral-sh/setup-uv@v7
- name: Install ast-grep
run: npm install --global @ast-grep/cli
- name: Checkout Qdrant
uses: actions/checkout@v6
- name: Amalgamate
run: uv run lib/edge/publish/amalgamate.py
- name: Publish to crates.io
working-directory: lib/edge/publish
env:
CARGO_REGISTRY_TOKEN: ${{ secrets.CRATES_IO_TOKEN_EDGE }}
run: cargo publish -p qdrant-edge --no-verify