mirror of
https://github.com/qdrant/qdrant-client.git
synced 2026-07-26 04:31:03 -05:00
75 lines
2.0 KiB
Bash
Executable File
75 lines
2.0 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
set -ex
|
|
|
|
function stop_docker()
|
|
{
|
|
echo "stopping qdrant_test"
|
|
docker stop qdrant_test
|
|
}
|
|
|
|
# Ensure current path is project root
|
|
cd "$(dirname "$0")/../"
|
|
|
|
QDRANT_LATEST="dev"
|
|
QDRANT_VERSION=${QDRANT_VERSION:-"$QDRANT_LATEST"}
|
|
IGNORE_CONGRUENCE_TESTS=${IGNORE_CONGRUENCE_TESTS:-"false"}
|
|
REST_PORT="6333"
|
|
GRPC_PORT="6334"
|
|
P2P_PORT="6335"
|
|
|
|
QDRANT_HOST=localhost:${REST_PORT}
|
|
|
|
docker run -d --rm \
|
|
-p ${REST_PORT}:${REST_PORT} \
|
|
-p ${GRPC_PORT}:${GRPC_PORT} \
|
|
-e QDRANT__CLUSTER__ENABLED=true \
|
|
-e QDRANT__SERVICE__GRPC_PORT=${GRPC_PORT} \
|
|
--name qdrant_test qdrant/qdrant:${QDRANT_VERSION} ./qdrant --uri "http://localhost:${P2P_PORT}" --disable-telemetry
|
|
|
|
trap stop_docker SIGINT
|
|
trap stop_docker ERR
|
|
|
|
until $(curl --output /dev/null --silent --get --fail http://$QDRANT_HOST/collections); do
|
|
printf 'waiting for server to start...'
|
|
sleep 5
|
|
done
|
|
|
|
trap - ERR
|
|
set +e
|
|
|
|
# If running backwards compatibility tests, skip local compatibility tests
|
|
# Backwards compatibility tests are enabled by setting QDRANT_VERSION to a version that is not the latest
|
|
# OR by setting IGNORE_CONGRUENCE_TESTS to true
|
|
if [[ "$QDRANT_VERSION" != "$QDRANT_LATEST" ]] || [[ "$IGNORE_CONGRUENCE_TESTS" == "true" ]]; then
|
|
QDRANT_VERSION=$QDRANT_VERSION pytest -x --ignore=tests/congruence_tests
|
|
PYTEST_EXIT_CODE=$?
|
|
else
|
|
QDRANT_VERSION=$QDRANT_VERSION pytest -x
|
|
PYTEST_EXIT_CODE=$?
|
|
fi
|
|
|
|
|
|
set -e
|
|
trap stop_docker ERR
|
|
|
|
if [[ $PYTEST_EXIT_CODE -ne 0 ]]; then
|
|
echo "Pytest failed, saving Qdrant snapshot..."
|
|
SNAPSHOT_NAME=$(curl -s -X POST "http://$QDRANT_HOST/snapshots" -H "accept: application/json" -H "Content-Type: application/json" | jq -r .result.name)
|
|
if [[ -n "$SNAPSHOT_NAME" ]]; then
|
|
echo "Snapshot created: $SNAPSHOT_NAME"
|
|
docker cp qdrant_test:/qdrant/snapshots/$SNAPSHOT_NAME ./failed_snapshot.snapshot
|
|
echo "Snapshot copied to host: $SNAPSHOT_NAME"
|
|
else
|
|
echo "Failed to create or parse snapshot name."
|
|
fi
|
|
|
|
stop_docker
|
|
exit 1
|
|
fi
|
|
|
|
|
|
echo "Ok, that is enough"
|
|
|
|
stop_docker
|