mirror of
https://github.com/qdrant/qdrant.git
synced 2026-09-25 07:27:41 -05:00
* tests: use local cache when building image for e2e tests * tests: make e2e local-cache image build safe under pytest-xdist - Serialize builder creation and the build with a `filelock` lock (the approach recommended by pytest-xdist for session fixtures), since every xdist worker runs the session fixture; workers that wait on the lock reuse the image built by the first one instead of rebuilding. - Keep the buildx builder between sessions instead of removing it in a finalizer, which also avoided one worker deleting a shared builder. - Fix README: CI pre-builds the image in the workflow (there is no `build-e2e-image` artifact); note the cache dir is never pruned. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
1.8 KiB
1.8 KiB
TLS test
Regenerate certificates
- run
PROJECT_ROOT/tests/e2e_tests/test_data/gen.sh - replace old certificates in
PROJECT_ROOT/tests/e2e_tests/test_data/certwith the newly generated ones
Data compatibility test
In order to detect quickly breakage of storage compatibility, we check that the current code understands the storage format from the latest stable release.
To not burden the git repository with tracking the large binary files, we are pushing storage archives to our GCP bucket.
As features are added, the storage format may change. This means updating the reference storage data and snapshot. This is done by running the gen_storage_compat_data.sh script.
Regenerate storage data
Follow those steps to recreate the reference storage data and snapshot.
- run
PROJECT_ROOT/tests/e2e_tests/test_data/compatibility/gen_storage_compat_data.sh - make sure to pick the right version when asked for which system generated the files
- push the new archives to the GCP bucket (ask for the credentials if you don't have them)
Local buildx cache
When no pre-built qdrant/qdrant:e2e-tests exists locally, the qdrant_image fixture builds one
via a dedicated qdrant-e2e-builder (docker-container driver) with a persistent cache at ~/.cache/qdrant-e2e-buildx.
- First run is cold; subsequent runs reuse the
cargo chef cooklayer whileCargo.lockis unchanged. - Cache is shared across checkouts and worktrees.
- The builder container is kept between runs. Remove it with
docker buildx rm qdrant-e2e-builder. - The cache directory is never pruned and grows with every
Cargo.lockchange. Reset it withrm -rf ~/.cache/qdrant-e2e-buildx. - CI pre-builds
qdrant/qdrant:e2e-testsin the workflow, so this path is skipped there.