diff --git a/.gitea/workflows/cd.yaml b/.gitea/workflows/cd.yaml index e663c5e5..d857f6e4 100644 --- a/.gitea/workflows/cd.yaml +++ b/.gitea/workflows/cd.yaml @@ -135,14 +135,18 @@ jobs: < tests/integration/setup_test_schema.sql PG_CONTAINER=$(docker ps --filter name=postgres-test --format '{{.Names}}' | head -1) echo "postgres container: $PG_CONTAINER" - # 在 postgres container 的網路命名空間內跑 pytest,localhost:5432 直連 - docker run --rm \ + # DinD: volume mount 不可靠,用 docker cp 把代碼放進臨時 container + # 共享 postgres container 網路命名空間,localhost:5432 直連 + PYTEST_CTR=$(docker create \ --network "container:${PG_CONTAINER}" \ - -v /opt/api-venv:/opt/api-venv \ - -v "$(pwd):/workspace" -w /workspace \ + -w /workspace \ -e TEST_DATABASE_URL="postgresql+asyncpg://awoooi:awoooi_test_2026@localhost:5432/awoooi_test?ssl=disable" \ python:3.11-slim \ - /opt/api-venv/bin/pytest tests/integration/test_b5_core_flows.py -v --tb=short + sh -c "pip install -q uv && uv pip install -q --system -e '.[dev]' && pytest tests/integration/test_b5_core_flows.py -v --tb=short") + docker cp . "$PYTEST_CTR:/workspace" + docker start -a "$PYTEST_CTR" + TEST_EXIT=$? + docker rm "$PYTEST_CTR" 2>/dev/null || true TEST_EXIT=$? docker compose -f docker-compose.test.yml down -v 2>/dev/null || true exit $TEST_EXIT