fix(ci): B5 用 docker cp 傳代碼進 container,解決 DinD volume 問題
Some checks failed
CD Pipeline / build-and-deploy (push) Has been cancelled
Some checks failed
CD Pipeline / build-and-deploy (push) Has been cancelled
DinD 下 volume mount 指向 host 路徑(不存在),改用: 1. docker create 建 container(共享 postgres 網路命名空間) 2. docker cp 把代碼複製進去 3. docker start -a 執行,取 exit code Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user