mirror of
https://github.com/qdrant/qdrant.git
synced 2026-07-29 06:01:05 -05:00
Bumps [astral-sh/setup-uv](https://github.com/astral-sh/setup-uv) from 8.3.2 to 9.0.0.
- [Release notes](https://github.com/astral-sh/setup-uv/releases)
- [Commits](11f9893b08...c771a70e62)
---
updated-dependencies:
- dependency-name: astral-sh/setup-uv
dependency-version: 9.0.0
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
152 lines
5.0 KiB
YAML
152 lines
5.0 KiB
YAML
name: Qdrant Edge Tests
|
|
|
|
on:
|
|
push:
|
|
branches: [ master, dev ]
|
|
pull_request:
|
|
branches: [ '**' ]
|
|
|
|
permissions:
|
|
contents: read
|
|
|
|
jobs:
|
|
edge-test:
|
|
name: Test Qdrant Edge
|
|
|
|
runs-on: ${{ matrix.os }}
|
|
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
# For PRs, only run on ubuntu to save CI time
|
|
os: >-
|
|
${{
|
|
github.event_name == 'pull_request'
|
|
&& fromJSON('["ubuntu-latest"]')
|
|
|| fromJSON('["ubuntu-latest", "macos-latest", "windows-latest"]')
|
|
}}
|
|
|
|
steps:
|
|
# Building the examples links several large statically-linked binaries,
|
|
# which gets close to the runner's disk limit. Only the fast `rm -rf`
|
|
# based options are enabled to keep this step under a minute.
|
|
- name: Free disk space
|
|
if: runner.os == 'Linux'
|
|
uses: jlumbroso/free-disk-space@54081f138730dfa15788a46383842cd2f914a1be # v1.3.1
|
|
with:
|
|
android: true
|
|
dotnet: true
|
|
haskell: true
|
|
tool-cache: false
|
|
large-packages: false
|
|
docker-images: false
|
|
swap-storage: false
|
|
|
|
- name: Checkout Qdrant
|
|
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
with:
|
|
# Don't leave GITHUB_TOKEN in .git/config: later steps build and run
|
|
# repository-controlled code (Rust/Python examples), which could
|
|
# otherwise read or exfiltrate the token. This job never pushes.
|
|
persist-credentials: false
|
|
|
|
- name: Install Rust nightly (for fmt)
|
|
uses: dtolnay/rust-toolchain@0f1b44df7e9cbb178d781a242338dfa5e243ad7f # nightly
|
|
with:
|
|
components: rustfmt
|
|
|
|
- name: Install Rust stable
|
|
uses: dtolnay/rust-toolchain@631a55b12751854ce901bb631d5902ceb48146f7 # stable
|
|
with:
|
|
components: rustfmt, clippy
|
|
|
|
- name: Install mold
|
|
if: runner.os == 'Linux'
|
|
uses: rui314/setup-mold@9c9c13bf4c3f1adef0cc596abc155580bcb04444 # v1
|
|
|
|
- name: Enable mold
|
|
if: runner.os == 'Linux'
|
|
run: |
|
|
mkdir .cargo
|
|
|
|
cat >.cargo/config.toml <<-EOF
|
|
[target.x86_64-unknown-linux-gnu]
|
|
linker = "clang"
|
|
rustflags = ["-C", "link-arg=-fuse-ld=/usr/local/bin/mold"]
|
|
EOF
|
|
|
|
- name: Install Python
|
|
uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
|
|
with:
|
|
python-version: '3.14'
|
|
|
|
- name: Install Just
|
|
uses: ./.github/actions/setup-just
|
|
|
|
- name: Install uv
|
|
uses: astral-sh/setup-uv@c771a70e6277c0a99b617c7a806ffedaca235ff9 # v9.0.0
|
|
|
|
- name: Install tools
|
|
run: |
|
|
uv tool install ast-grep-cli
|
|
uv tool install maturin
|
|
|
|
- name: Setup Qdrant
|
|
uses: ./.github/actions/setup-qdrant
|
|
|
|
- name: Restore Rust build cache
|
|
uses: Swatinem/rust-cache@e18b497796c12c097a38f9edb9d0641fb99eee32 # v2
|
|
with:
|
|
shared-key: edge
|
|
# Only save the cache on dev; feature-branch caches would just get evicted under the 10 GB budget
|
|
save-if: ${{ github.ref == 'refs/heads/dev' }}
|
|
|
|
- name: Prepare data files
|
|
id: rs-prepare-data
|
|
working-directory: lib/edge
|
|
run: just prepare-data
|
|
|
|
- name: 🦀 Check Rust
|
|
working-directory: lib/edge
|
|
run: just rs-check
|
|
|
|
- name: 🦀 Test qdrant-edge-ffi (default features)
|
|
# Run on nightly: the workspace uses unstable features (cfg_select in
|
|
# lib/common), so stable can't compile it. nightly is already installed
|
|
# above (for fmt). +nightly also makes doctests use the nightly rustdoc,
|
|
# avoiding the E0514 toolchain-mismatch seen with a stray stable rustdoc.
|
|
# Default features (matrix on) — the surface general/non-mobile UniFFI
|
|
# consumers get.
|
|
run: cargo +nightly test --locked -p qdrant-edge-ffi
|
|
|
|
- name: 🦀 Test qdrant-edge-ffi (mobile surface, no default features)
|
|
# --no-default-features drops `matrix`, matching what the mobile
|
|
# Swift/Kotlin bindgen builds. Guards that the crate still compiles and
|
|
# passes with the O(n^2) search_matrix op excluded from the surface.
|
|
run: cargo +nightly test --locked -p qdrant-edge-ffi --no-default-features
|
|
|
|
- name: 🦀 Test qdrant-edge-ffi (all features)
|
|
# matrix + staging together, so the feature-gated surface can't bit-rot:
|
|
# the `staging` coverage-map exhaustiveness arm only compiles under it.
|
|
run: cargo +nightly test --locked -p qdrant-edge-ffi --all-features
|
|
|
|
- name: 🦀 Build Rust examples
|
|
working-directory: lib/edge
|
|
run: just rs-examples-build
|
|
|
|
- name: 🦀 Run Rust examples
|
|
working-directory: lib/edge
|
|
run: just rs-examples
|
|
|
|
- name: 🐍 Build Python edge
|
|
working-directory: lib/edge/python
|
|
run: just py-build
|
|
|
|
- name: 🐍 Run Python examples
|
|
working-directory: lib/edge
|
|
run: just py-examples
|
|
|
|
- name: Check for uncommitted changes
|
|
if: always()
|
|
run: git diff --exit-code
|