diff --git a/.gitea/workflows/ci-pipeline.yml b/.gitea/workflows/ci-pipeline.yml index 535f49e97..baec97761 100755 --- a/.gitea/workflows/ci-pipeline.yml +++ b/.gitea/workflows/ci-pipeline.yml @@ -1084,15 +1084,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() @@ -1140,13 +1148,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()