From 339802a44031ef774f818d4aaa0f1c38c6cab353 Mon Sep 17 00:00:00 2001 From: xiaoxia Date: Thu, 23 Jul 2026 19:36:20 +0800 Subject: [PATCH] =?UTF-8?q?fix(ci):=20=E4=BF=AE=E5=A4=8DStaging=20E2E/API?= =?UTF-8?q?=20Tests=20DooD=E6=8C=82=E8=BD=BD=E8=B7=AF=E5=BE=84=E9=97=AE?= =?UTF-8?q?=E9=A2=98=20-=20=E6=94=B9=E7=94=A8docker=20cp?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitea/workflows/ci-pipeline.yml | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/.gitea/workflows/ci-pipeline.yml b/.gitea/workflows/ci-pipeline.yml index c2545a97e..b4b5c3415 100755 --- a/.gitea/workflows/ci-pipeline.yml +++ b/.gitea/workflows/ci-pipeline.yml @@ -1083,15 +1083,23 @@ jobs: shell: sh run: | set -eu - docker run --rm --ipc=host \ + # DooD模式下不能用-v挂载(宿主机路径与CI容器路径不一致) + # 改用 docker create + docker cp 方式把代码拷进容器 + CONTAINER_NAME="staging-e2e-$$" + docker create --name "$CONTAINER_NAME" --ipc=host \ -e E2E_BASE_URL=https://staging.xiaoxiajianji.com \ -e E2E_API_BASE=https://staging-api.xiaoxiajianji.com/api/v1 \ -e E2E_BROWSER_CHANNEL=chromium \ -e PLAYWRIGHT_HEADLESS=1 \ - -v "$PWD:/workspace" \ -w /workspace/apps/web \ git.xiaoxiajianji.com/xiaoxia/base/playwright:v1.45.0-jammy \ sh -lc "npm ci && npx playwright test --reporter=line --project=chromium e2e/auth.spec.ts e2e/auth-guard.spec.ts e2e/core-upload.spec.ts e2e/core-generation.spec.ts" + docker cp apps "$CONTAINER_NAME:/workspace/" + docker cp package-lock.json "$CONTAINER_NAME:/workspace/" 2>/dev/null || true + docker start -a "$CONTAINER_NAME" + EXIT_CODE=$(docker wait "$CONTAINER_NAME") + docker rm "$CONTAINER_NAME" 2>/dev/null || true + exit $EXIT_CODE - name: Job duration summary if: always() @@ -1139,13 +1147,21 @@ jobs: shell: sh run: | set -eu - docker run --rm \ + # DooD模式下不能用-v挂载(宿主机路径与CI容器路径不一致) + # 改用 docker create + docker cp 方式把代码拷进容器 + CONTAINER_NAME="staging-api-tests-$$" + docker create --name "$CONTAINER_NAME" \ -e E2E_BASE_URL=https://staging.xiaoxiajianji.com \ -e E2E_API_BASE=https://staging-api.xiaoxiajianji.com/api/v1 \ - -v "$PWD:/workspace" \ -w /workspace/apps/web \ git.xiaoxiajianji.com/xiaoxia/base/playwright:v1.45.0-jammy \ sh -lc 'npm ci && npx playwright test --reporter=line e2e/test_auth.spec.ts e2e/test_asset.spec.ts e2e/test_project.spec.ts' + docker cp apps "$CONTAINER_NAME:/workspace/" + docker cp package-lock.json "$CONTAINER_NAME:/workspace/" 2>/dev/null || true + docker start -a "$CONTAINER_NAME" + EXIT_CODE=$(docker wait "$CONTAINER_NAME") + docker rm "$CONTAINER_NAME" 2>/dev/null || true + exit $EXIT_CODE - name: Job duration summary if: always() -- 2.54.0