fix: resolve E2E test failures in CI

Why this change is needed:
E2E tests were failing in GitHub Actions CI with two critical issues:
1. PostgreSQL tests failed with "ModuleNotFoundError: No module named 'qdrant_client'"
2. Qdrant container health check never became healthy

How it solves it:
1. Added qdrant-client to PostgreSQL job dependencies
   - test_e2e_multi_instance.py imports QdrantClient at module level
   - Even with -k "postgres" filter, pytest imports the whole module first
   - Both PostgreSQL and Qdrant tests now share dependencies

2. Changed Qdrant health check from curl to wget
   - Qdrant Docker image may not have curl pre-installed
   - wget is more commonly available in minimal container images
   - New command: wget --no-verbose --tries=1 --spider

Impact:
- Fixes PostgreSQL E2E test import errors
- Enables Qdrant container to pass health checks
- Allows both test suites to run successfully in CI

Testing:
- Will verify in next CI run that both jobs complete successfully
- Health check should now return "healthy" status within retry window
This commit is contained in:
BukeLy 2025-11-20 00:25:35 +08:00
parent c7e7b347e9
commit 66a0dfe5b7

View file

@ -54,7 +54,7 @@ jobs:
run: |
python -m pip install --upgrade pip
pip install -e ".[api]"
pip install pytest pytest-asyncio asyncpg numpy
pip install pytest pytest-asyncio asyncpg numpy qdrant-client
- name: Wait for PostgreSQL
run: |
@ -99,7 +99,7 @@ jobs:
- 6333:6333
- 6334:6334
options: >-
--health-cmd "curl -f http://localhost:6333/health || exit 1"
--health-cmd "wget --no-verbose --tries=1 --spider http://localhost:6333/health || exit 1"
--health-interval 10s
--health-timeout 5s
--health-retries 5