From 66a0dfe5b7cbc49b5884c960133c1da38c6497fc Mon Sep 17 00:00:00 2001 From: BukeLy Date: Thu, 20 Nov 2025 00:25:35 +0800 Subject: [PATCH] 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 --- .github/workflows/e2e-tests.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/e2e-tests.yml b/.github/workflows/e2e-tests.yml index 4f8b01b5..dea2d1d3 100644 --- a/.github/workflows/e2e-tests.yml +++ b/.github/workflows/e2e-tests.yml @@ -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