Commit Graph

145 Commits

Author SHA1 Message Date
Kumar Shivendu
beccbfd363 Fix dev branch coverage (#6538)
* Fix dev branch coverage

* Add comments
2025-05-16 09:18:14 +02:00
Kumar Shivendu
0389060955 Introduce coverage reports for integration tests (#6414)
* Introduce coverage reports for integration tests

* Install cargo-llvm-cov

* Use multiline script

* Explicityl setup COVERAGE env var

* fix integration tests and log generated data

* fix ls path

* upload lcov file to GH artifacts

* integration profraw dynamic filename

* Fix llvm profile filename template

* Use interrupt instead of kill and merge consensus test results into same file

* Drop upload artifact stage

* install llvm-cov

* upload as artifact and export coverage files

* try simplifying workflow

* Migrate coverage generation to existing dedicated gh workflow

* trigger on coverage related branches

* Build only if qdrant binary with cov doesnt exist

* Use valid yaml

* include mode in profraw filename

* split coverage workflow into parallel jobs

* add poetry version to env

* log poetry version to install

* clean up integration test workflow

* Simplify comments
2025-05-13 11:16:09 +02:00
Roman Titov
6e181db333 Optimize GitHub Actions workflows (#6362)
* Add shared rust-cache key for integration test jobs

* Disable debug symbols

* Remove non-necessary setup steps...

...from `test-low-resources` and `test-snapshot-operations-s3-minio` jobs

* Always upload `test-consensus`/`integration-tests-consensus` logs...

...even when tests passed successfully

* Reduce poll interval for `wait_for` checks in integration tests
2025-04-21 00:07:25 +02:00
Roman Titov
5d2ede9719 Rename some GHA jobs, so that default rust-cache keys are unique for all workflows/jobs (#6280) 2025-04-21 00:02:53 +02:00
Kumar Shivendu
39dff45e80 Fix codecov branch issue (#6345) 2025-04-20 23:54:31 +02:00
Arnaud Gourlay
1693d24e8e Fixing failing CI due to missing liblzma (#6329)
* Fixing failing CI due to missing liblzma

* Try again
2025-04-20 23:52:46 +02:00
Arnaud Gourlay
50293df2c3 Downgrade cmake 3.x (#6306)
* Downgrade cmake 3.x

* Only where needed

* Add comments
2025-04-20 23:47:37 +02:00
Kumar Shivendu
0b63baa7a7 Code cov override branch (#6262) 2025-03-31 16:21:11 +02:00
tellet-q
820ea5a8a9 Use common actions pattern in workflows (#6061)
* Use common actions pattern

* Update gpu workflow
2025-03-21 11:41:50 +01:00
tellet-q
a71e2ffe74 Add workflow that can be triggered (#6059)
an experiment
2025-03-21 11:39:05 +01:00
Tim Visée
b0926caede Revert "Temporarily run code coverage on merging to dev (#5911)" (#5982)
This reverts commit efcbce195e.
2025-02-17 10:20:54 +01:00
Kumar Shivendu
222b25150a Fix coverage test OOD on CI (#5927)
* Fix coverage test OOD on CI

* Temporarily run coverage CI on PR

* Clean artifacts per package and store in tmp dir

* fix typo in gh workflow

* Add monitoring script again for debugging

* trigger script

* Fix monitor script path

* dont checkout dev branch

* Merge .info file only if test passed

* Try merging .info file only if it exists

* trigger ci

* fix workflow

* trigger ci

* Customize branch to check out

* Remove monitor.sh script

* remove unused env var
2025-02-11 14:41:12 +01:00
dependabot[bot]
0a790a72f9 build(deps): bump codecov/codecov-action from 3 to 5 (#5940)
Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 3 to 5.
- [Release notes](https://github.com/codecov/codecov-action/releases)
- [Changelog](https://github.com/codecov/codecov-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/codecov/codecov-action/compare/v3...v5)

---
updated-dependencies:
- dependency-name: codecov/codecov-action
  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>
2025-02-11 14:40:39 +01:00
Arnaud Gourlay
953e09f539 Use cargo --locked on CI for reproducible builds (#5913) 2025-02-11 14:40:17 +01:00
Kumar Shivendu
ecc783a25d Temporarily run code coverage on merging to dev (#5911) 2025-02-11 14:38:30 +01:00
Kumar Shivendu
5e7d644c4c Setup code coverage reports (#5751)
* Setup code coverage for Rust tests

* Add API key env var for codecov

* Save code coverage report for upload

* Trigger CI

* Try without explicit build step

* Run coverage job on self hosted runner

* Fix mistake because of which is was running fewer tests

* Run coverage on ubuntu latest

* Trigger CI

* fix name

* run coverage on all os

* Adjust after rebase to dev

* Avoid running coverage in other jobs

* fix test job

* reset test workflow

* Trigger CI

* run coverage after tests

* Add script to monitor resources

* fix indentation

* remove coverage dependency on test job

* fix needs field

* add monitoring script

* Run tail -f to monitor resources concurrently with tests

* Split commands

* Use --jobs=1 to possibly minimize RAM

* Try generating coverage one by one

* Dont clean coverage artifacts

* Merge .lcov files with lcov command

* Upload merged lcov.info file

* Run coverage for fewer packages

* Improve coverage script

* Move coverage.sh to tools dir

* Prepare for review

* Improve CI output and failure handling

* Generate HTML report if running locally

* Cleanup

* Run coverage on schedule and only for dev branch
2025-02-11 14:36:44 +01:00
xzfc
6a972e588a Update codespell config (#5846) 2025-01-23 14:28:56 +01:00
Tim Visée
cddbc2bc90 Experiment: enable bindgen-runtime for RocksDB (#5768)
* Enable bindgen-runtime feature for RocksDB

* Test without libclang and llvm on CI
2025-01-16 10:49:49 +01:00
Arnaud Gourlay
7f79b14802 Update rocksdb 0.23.0 (#5765)
* Update Rocksdb 0.23.0

* make it work
2025-01-16 10:49:27 +01:00
Ivan Pleshkov
7ea41c794d unique workflow job names for gpu (#5758) 2025-01-08 14:33:07 +01:00
Ivan Pleshkov
d841d7dbe6 Add GPU into github workflows (#5752)
* parent 88f68d95b5
author Ivan Pleshkov <pleshkov.ivan@gmail.com> 1736245999 +0100
committer Ivan Pleshkov <pleshkov.ivan@gmail.com> 1736331073 +0100

gpu test and release workflows

no unprivileged, add sdk

fix ci

include llvm

try to use external sdk

use another vk sdk script

remove ninja

native sdk installation

debug vulkan version

use non-dev packages

debug vkinfo

remove llvm dep

ubuntu process-results

ghcr

* remove running gpu test while pr
2025-01-08 14:12:02 +01:00
Arnaud Gourlay
4d350a4695 Fix poetry version in CI (#5734)
* Fix poetry version in CI

* extract version
2025-01-08 14:11:07 +01:00
Arnaud Gourlay
1aebe81af6 Track slow pytest integration tests (#5722)
* Track slow pytest integration tests

* gofor top 10
2025-01-08 14:10:55 +01:00
Andrey Vasnetsov
7b0911961c Explict configuration for deb package build (#5630)
* explicit configuration of deb package

* use special build feature

* Review suggestions

---------

Co-authored-by: Tim Visée <tim+github@visee.me>
2025-01-08 14:03:45 +01:00
xzfc
ba93831683 Fix shard snapshot operations for s3 (#5227)
* Fix shard snapshot operations for s3

* tests/shard-snapshot-api.sh: Improve error reporting

* Drop SnapshotStorageManager::get_shard_snapshot_path

* Fix s3 test on CI
2024-11-08 11:02:37 +01:00
Tim Visée
6d8a857408 Disable manual workflow dispatch on Docker release image job (#5117) 2024-09-23 12:00:45 +02:00
xzfc
6c2256b86d Unclutter repo root (#4678)
* Move CODE_OF_CONDUCT.md to docs

* Move CONTRIBUTING.md to docs

* Drop QUICK_START_GRPC.md

* Drop docs/favicon.ico as being unused

* Move QUICK_START.md to docs
2024-08-09 18:08:24 +02:00
xzfc
7e3de3e7bf Switch to poetry (#4518)
* Use poetry for openapi tests

* Use poetry for consensus tests

* Use poetry for gen_storage_compat_data/populate_db.py

* Make consensus_tests scripts executable

* Use poetry for test-consensus-compose

* Cleanup

* Don't call poetry run in scripts
2024-07-10 14:18:15 +02:00
tellet-q
c99caba0a3 Add test for OOD during indexing (#4267)
* Add test for OOD during indexing

* Start indexing right after 1st OOD message

* Only send search request after insert loop

* Fail early when encountering out-of-storage during optimization (#4578)

* fs4@0.8.4

* fail early on low storage

* move `dir_size` to `common`

* move the ood bailout to `SegmentOptimizer::optimized_segment_builder`

* drop dead code

* move dir_size to common subcrate

---------

Co-authored-by: generall <andrey@vasnetsov.com>

---------

Co-authored-by: xhjkl <xhjkl@users.noreply.github.com>
Co-authored-by: generall <andrey@vasnetsov.com>
2024-06-29 23:03:43 +02:00
dependabot[bot]
f62892d770 Bump docker/build-push-action from 5 to 6 (#4487)
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 5 to 6.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/v5...v6)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  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>
2024-06-21 23:39:29 +02:00
Tim Visée
e094b618be Re-enable Windows CI (#4461)
This reverts commit c36b4793e0.
2024-06-21 23:34:41 +02:00
xzfc
827338543d Allow failures on Windows CI (#4421) 2024-06-11 13:16:01 +02:00
Arnaud Gourlay
afdfe1aa80 Add optional post WAL data consistency check (#4359)
* Add optional post WAL data consistency check

* fix multi features build
2024-06-11 13:13:58 +02:00
Kumar Shivendu
16fe8cd15f fix: Replace with space (#4316) 2024-05-26 12:53:29 +02:00
Tim Visée
8af7b7ac22 Exclude code of conduct from codespell check (#4315) 2024-05-26 12:53:16 +02:00
Arnaud Gourlay
e6c4b1805b Use Python 3.11 on CI for consensus tests (#4284) 2024-05-26 12:49:05 +02:00
Kenshin Tanaka
96ca9039aa Handle Out-Of-Disk gracefully (#4165)
* tests: Add test on low disk

* Remove redundant assertion

* keep container after failure and print latest logs in console

* Add fs2 crate as a dependency and ensure sufficient disk space in LocalShard operations

* small fix

* Update test

* small fix

* use available_space

* Use `fs2` -> `fs4` and offload sync IO with `tokio::task::spawn_blocking`

* create DiskUsageWathcer

* chore: Remove unnecessary println statement in update_handler.rs

* chore: Fix typo in DiskUsageWatcher struct name

* chore: Refactor DiskUsageWatcher to improve disk usage tracking and update logic

---------

Co-authored-by: tellet-q <elena.dubrovina@qdrant.com>
Co-authored-by: generall <andrey@vasnetsov.com>
2024-05-26 12:27:54 +02:00
Andrey Vasnetsov
633d5dec86 combine local and s3 tests (#4218) 2024-05-26 12:27:48 +02:00
Kenshin Tanaka
22c3ee286e Implement S3 snapshot manager (#4150)
* Add SnapshotsStorageConfig enum(Local or S3) and deserialize implementation

* [refactor]  use snapshots_config instead of s3_config

* update config

* add AWS official`aws-sdk-s3`

* implement store_file() WITHOUT error handling

* implement list_snapshots

* implement delete_snapshot

* run `cargo +nightly fmt`

* delete println

* implement get_stored_file

* Add error handlings

* Refactor AWS S3 configuration and error handling

* fix bugs

* create an empty test file

* fix `alias_test.rs` for StorageConfig type

* tempolary delete some test and try s3 test

* Update integration-tests.yml to use snap instead of apt-get for installing yq

* Update integration-tests.yml to use sudo when installing yq

* add sudo

* make (full/non-full) snapshots downloadable

* debug

* small fix

* Add S3 endpoint URL configuration option

* fix

* fix

* debug

* fix endpoint

* update to http://127.0.0.1:9000/

* update

* fix

* fix `#[get("/collections/{collection}/shards/{shard}/snapshots/{snapshot}")]` for s3

* put original tests back

* refactor

* small fix (delete println & echo)

* use object_store and refactor

* create snapshot_storage_ops and implement

* Refactor get_appropriate_chunk_size function to adjust chunk size based on service limits and file size

* cargo +nightly fmt --all

* make it more abstract

* Refactor SnapshotsStorageConfig deserialization in SnapShotsConfig

* small update

* small fix

* Update dependencies in Cargo.lock

* Update minio image to satantime/minio-server

* Refactor snapshot storage paths in snapshots_manager.rs and snapshot_storage_ops.rs

* Fix issue with downloaded file size not matching expected size in download_snapshot function

* add flush

* Use Streaming instead of donloading once

* apply `cargo +nightly fmt --all`

* Fix issue with opening file in SnapshotStream::LocalFS variant

* Fix error handling in SnapshotStream::LocalFS variant

* Add integration test for Shard Snapshot API with S3 storage (#7)
2024-05-26 12:27:36 +02:00
Kumar Shivendu
3fffffbe9c fix: Replace newline with spaces to find docker resources to remove (#4215)
* fix: Replace newline with spaces to find docker resources to remove

* fix: Use xargs instead of tr

* fix: Avoid quotes to pass multiple args

* fix: Use tr -d
2024-05-26 12:27:16 +02:00
xzfc
8fe5e43764 Introduce Cargo feature "testing" (#4192) 2024-05-09 14:27:37 +02:00
Kumar Shivendu
3f7353c5b2 ci: Force delete all existing buildx resources before building image (#4166) 2024-05-09 14:24:16 +02:00
Kumar Shivendu
12964abe3c feat: Build any branch using GH workflow (#4120)
* feat: Allow building any branch with GH dev image builder workflow

* fix: Trim feat, fix, etc

* fix: Replace all / with -
2024-05-02 19:12:22 +02:00
Luis Cossío
7ad30a2737 Remove api-key path matching (#4046)
* remove api-key path matching

* remove deprecated test suite

* require management access for stacktrace api

---------

Co-authored-by: generall <andrey@vasnetsov.com>
2024-04-22 10:33:43 +02:00
Luis Cossío
0c70034a62 RBAC: [tests] exhaustive access tests (#3961)
* create exhaustive access test (missing body stubs)

* use json body in rest requests

* use better stubs

* green test for create_shard_key

* make it work for delete_shard_key

* make it work for list_collections

* make it work for get_collection

* make it work for create_collection

* make it work for update_collection_params

* make it work for delete_collection

* make it work for update_aliases

* make it work for create_index

* make it work for collection_exists

* make it work for delete_index

* make it work for get_collection_cluster_info

* don't build grpcio and use `uv` for faster deps installation

* partially prepare for update cluster ops

* make it work for list_collection_aliases

* make it work for list_aliases

* make it work for list_collection_snapshots

* make it work for create_collection_snapshot

* huge refactor + make it work for delete_collection_snapshot

* make it work for download_collection_snapshot

* test_upload_collection_snapshot

* test_recover_collection_snapshot

* test_recover_collection_snapshot

* test_upload_shard_snapshot

* test_recover_shard_snapshot

* test_list_shard_snapshots

* test_create_shard_snapshot

* test_delete_shard_snapshot

* test_download_shard_snapshot

* test_list_snapshots and test_create_snapshot

* test_delete_snapshot

* test_download_full_snapshot

* test_get_cluster

* test_recover_raft_state

* test_delete_peer

* prepare for splitting into another PR

* skip api exhaustiveness checks

* lil cleanup

* fix integration tests workflow

* test search api

* test recommend api

* test discover api

* test count and scroll

* test get and upsert points

* test update points batch

* test update and delete vectors

* test set, overwrite, delete, and clear payload

* test service level actions

* finish testing (with errors), introduce not needing success

* make tests much faster

* simplify delete tests

* complete collection cluster operations

* cleanup

* update after rebase

* change permissions for create and delete shard keys

* review fixes

* add newline
2024-04-22 10:31:10 +02:00
Kumar Shivendu
0eb03ad5f6 fix: Dev container build workflow (#3967) 2024-04-22 10:29:10 +02:00
Kumar Shivendu
20c547a2ce feat: Remove existing buildx containers before building dev branch (#3959)
* feat: Remove existing buildx containers before building dev branch

* fix: Typo
2024-04-22 10:28:44 +02:00
Luis Cossío
0d9a9dce1f RBAC: stateful validation with value_exists (#3874) 2024-04-22 10:26:30 +02:00
Kumar Shivendu
ad6b4b2532 fix: Include git commit id while building docker image if possible (#3640)
* feat: Print commit id in dev container build workflow

* fix: Keep .git while building Qdrant binary in docker

* fix: Remove redundant printing of git commit id

* fix: Copy only git files first

* fix: Docker build should have commit id if present

* refactor: Use fewer lines of code

* feat: Use git commit id from build arg

* refactor: Use cleaner code

* Fix string reference issue

* fix: Dont print info log if commit is not set

* fix: Include git commit id in release containers

---------

Co-authored-by: timvisee <tim@visee.me>
2024-03-05 17:09:58 +01:00
dependabot[bot]
7463d1ddd7 Bump arduino/setup-protoc from 2 to 3 (#3536)
Bumps [arduino/setup-protoc](https://github.com/arduino/setup-protoc) from 2 to 3.
- [Release notes](https://github.com/arduino/setup-protoc/releases)
- [Commits](https://github.com/arduino/setup-protoc/compare/v2...v3)

---
updated-dependencies:
- dependency-name: arduino/setup-protoc
  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>
2024-03-05 16:58:05 +01:00