From 33cc67305f4d1f141604bf6498e754e3ad89c0db Mon Sep 17 00:00:00 2001 From: xiaoxia Date: Fri, 7 Aug 2026 20:18:20 +0800 Subject: [PATCH] fix(ci): add npm retry logic for staging tests - Add 3-retry mechanism with 15s interval for npm ci - Fixes 504 Gateway Time-out from npmmirror registry - Apply to both staging-e2e and staging-api-tests jobs Fixes #1274 --- .gitea/workflows/ci-pipeline.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.gitea/workflows/ci-pipeline.yml b/.gitea/workflows/ci-pipeline.yml index fed87534f..88fb3f9d2 100755 --- a/.gitea/workflows/ci-pipeline.yml +++ b/.gitea/workflows/ci-pipeline.yml @@ -1100,7 +1100,7 @@ jobs: -e PLAYWRIGHT_HEADLESS=1 \ -w /workspace/apps/web \ git.xiaoxiajianji.com/xiaoxia/base/playwright:v1.45.0-jammy \ - sh -lc "npm ci --registry=https://registry.npmmirror.com && 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" + sh -lc "for i in 1 2 3; do npm ci --registry=https://registry.npmmirror.com && break; echo \"npm ci failed (attempt $i), retrying in 15s...\"; sleep 15; done && 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 start -a "$CONTAINER_NAME" EXIT_CODE=$(docker wait "$CONTAINER_NAME") @@ -1163,7 +1163,7 @@ jobs: -e E2E_API_BASE=https://staging-api.xiaoxiajianji.com/api/v1 \ -w /workspace/apps/web \ git.xiaoxiajianji.com/xiaoxia/base/playwright:v1.45.0-jammy \ - sh -lc 'npm ci --registry=https://registry.npmmirror.com && npx playwright test --reporter=line e2e/test_auth.spec.ts e2e/test_asset.spec.ts e2e/test_project.spec.ts' + sh -lc 'for i in 1 2 3; do npm ci --registry=https://registry.npmmirror.com && break; echo \"npm ci failed (attempt $i), retrying in 15s...\"; sleep 15; done && 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 start -a "$CONTAINER_NAME" EXIT_CODE=$(docker wait "$CONTAINER_NAME") @@ -1506,7 +1506,7 @@ jobs: -v "$PWD:/workspace" \ -w /workspace/apps/web \ git.xiaoxiajianji.com/xiaoxia/base/playwright:v1.45.0-jammy \ - sh -lc 'npm ci --registry=https://registry.npmmirror.com && 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 e2e/core-titles.spec.ts' + sh -lc 'for i in 1 2 3; do npm ci --registry=https://registry.npmmirror.com && break; echo \"npm ci failed (attempt $i), retrying in 15s...\"; sleep 15; done && 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 e2e/core-titles.spec.ts' - name: Job duration summary if: always() @@ -1862,4 +1862,4 @@ jobs: [ "${{ steps.gate.outputs.gate_result }}" = "success" ] || STATUS="error" START_TIME="" [ -f /tmp/ci_job_start_time ] && START_TIME=$(cat /tmp/ci_job_start_time) - python3 scripts/ci/ci_trace_report.py --service xiaoxia-saas-ci --status $STATUS --start-time "$START_TIME" || true + python3 scripts/ci/ci_trace_report.py --service xiaoxia-saas-ci --status $STATUS --start-time "$START_TIME" || true \ No newline at end of file -- 2.54.0