fix(ci): run_staging_tests.sh 同样加 trap EXIT 回收 staging 测试容器
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 1m47s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 2m51s
AI Code Review / AI Code Review (pull_request) Successful in 6m21s
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 16m55s
CI/CD Pipeline / Dedup Check - skip PR tests when covered by push pipeline (pull_request) Successful in 0s
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 1s
CI/CD Pipeline / PR Build API Image (pull_request) Successful in 2m3s
CI/CD Pipeline / PR Build Worker Image (pull_request) Successful in 2m39s
CI/CD Pipeline / Validate - Style (pull_request) Successful in 3m54s
CI/CD Pipeline / Validate - Python (mypy + alembic) (pull_request) Successful in 5m7s
CI/CD Pipeline / Validate - Security (pull_request) Successful in 10m1s
CI/CD Pipeline / Unit Tests (pull_request) Successful in 10m44s
CI/CD Pipeline / Production Browser E2E (pull_request) Has been skipped
CI/CD Pipeline / Integration Tests (pull_request) Successful in 12m24s
CI/CD Pipeline / CI Gate (pull_request) Successful in 2s
ACR Cleanup / ACR Image Cleanup (pull_request_target) Successful in 22s
Preview Cleanup / Cleanup Preview Environment (pull_request) Successful in 52s
CI/CD Pipeline / Build Production Web Image (pull_request) Failing after 8h40m31s
CI/CD Pipeline / PR Build Web Image (pull_request) Failing after 8h51m17s
CI/CD Pipeline / Deploy Production (pull_request) Failing after 8h40m28s
CI/CD Pipeline / Build Staging API Image (pull_request) Failing after 8h51m16s
CI/CD Pipeline / Build Staging Web Image (pull_request) Failing after 8h50m33s
CI/CD Pipeline / Build Staging Worker Image (pull_request) Failing after 8h50m33s
CI/CD Pipeline / Build Production API Image (pull_request) Failing after 8h39m47s
CI/CD Pipeline / Build Production Worker Image (pull_request) Failing after 8h39m47s
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Failing after 8h50m25s
CI/CD Pipeline / Retag skipped Staging Worker Image (pull_request) Failing after 8h50m27s
CI/CD Pipeline / Retag skipped Staging Web Image (pull_request) Failing after 8h50m27s
CI/CD Pipeline / Retag skipped Staging API Image (pull_request) Failing after 8h50m27s
CI/CD Pipeline / Staging API Integration Tests (pull_request) Failing after 8h50m22s
CI/CD Pipeline / Frontend Lint (pull_request) Failing after 8h50m34s
CI/CD Pipeline / Check push changed paths (pull_request) Failing after 8h50m39s
CI/CD Pipeline / Canary Release to Production (pull_request) Failing after 8h39m44s
CI/CD Pipeline / ACR Image Cleanup (pull_request) Failing after 8h50m22s
CI/CD Pipeline / Frontend Unit Tests (pull_request) Failing after 8h50m34s
CI/CD Pipeline / Staging E2E Tests (pull_request) Failing after 9h26m5s
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 1m47s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 2m51s
AI Code Review / AI Code Review (pull_request) Successful in 6m21s
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 16m55s
CI/CD Pipeline / Dedup Check - skip PR tests when covered by push pipeline (pull_request) Successful in 0s
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 1s
CI/CD Pipeline / PR Build API Image (pull_request) Successful in 2m3s
CI/CD Pipeline / PR Build Worker Image (pull_request) Successful in 2m39s
CI/CD Pipeline / Validate - Style (pull_request) Successful in 3m54s
CI/CD Pipeline / Validate - Python (mypy + alembic) (pull_request) Successful in 5m7s
CI/CD Pipeline / Validate - Security (pull_request) Successful in 10m1s
CI/CD Pipeline / Unit Tests (pull_request) Successful in 10m44s
CI/CD Pipeline / Production Browser E2E (pull_request) Has been skipped
CI/CD Pipeline / Integration Tests (pull_request) Successful in 12m24s
CI/CD Pipeline / CI Gate (pull_request) Successful in 2s
ACR Cleanup / ACR Image Cleanup (pull_request_target) Successful in 22s
Preview Cleanup / Cleanup Preview Environment (pull_request) Successful in 52s
CI/CD Pipeline / Build Production Web Image (pull_request) Failing after 8h40m31s
CI/CD Pipeline / PR Build Web Image (pull_request) Failing after 8h51m17s
CI/CD Pipeline / Deploy Production (pull_request) Failing after 8h40m28s
CI/CD Pipeline / Build Staging API Image (pull_request) Failing after 8h51m16s
CI/CD Pipeline / Build Staging Web Image (pull_request) Failing after 8h50m33s
CI/CD Pipeline / Build Staging Worker Image (pull_request) Failing after 8h50m33s
CI/CD Pipeline / Build Production API Image (pull_request) Failing after 8h39m47s
CI/CD Pipeline / Build Production Worker Image (pull_request) Failing after 8h39m47s
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Failing after 8h50m25s
CI/CD Pipeline / Retag skipped Staging Worker Image (pull_request) Failing after 8h50m27s
CI/CD Pipeline / Retag skipped Staging Web Image (pull_request) Failing after 8h50m27s
CI/CD Pipeline / Retag skipped Staging API Image (pull_request) Failing after 8h50m27s
CI/CD Pipeline / Staging API Integration Tests (pull_request) Failing after 8h50m22s
CI/CD Pipeline / Frontend Lint (pull_request) Failing after 8h50m34s
CI/CD Pipeline / Check push changed paths (pull_request) Failing after 8h50m39s
CI/CD Pipeline / Canary Release to Production (pull_request) Failing after 8h39m44s
CI/CD Pipeline / ACR Image Cleanup (pull_request) Failing after 8h50m22s
CI/CD Pipeline / Frontend Unit Tests (pull_request) Failing after 8h50m34s
CI/CD Pipeline / Staging E2E Tests (pull_request) Failing after 9h26m5s
This commit is contained in:
@@ -16,6 +16,17 @@ CONTAINER_NAME="staging-${MODE}-$$"
|
||||
# 强制清理可能残留的同名容器
|
||||
docker rm -f "$CONTAINER_NAME" 2>/dev/null || true
|
||||
|
||||
# 任何退出路径(成功/失败/被取消 SIGTERM)都回收容器,杜绝 staging 测试容器泄漏
|
||||
cleanup_container() {
|
||||
local code=$?
|
||||
set +e
|
||||
docker rm -f "$CONTAINER_NAME" >/dev/null 2>&1 && echo "✅ 已清理容器: $CONTAINER_NAME"
|
||||
exit "$code"
|
||||
}
|
||||
trap cleanup_container EXIT
|
||||
trap 'exit 130' INT
|
||||
trap 'exit 143' TERM
|
||||
|
||||
if [ "$MODE" = "e2e" ]; then
|
||||
docker create --name "$CONTAINER_NAME" --ipc=host \
|
||||
-e E2E_BASE_URL=https://staging.xiaoxiajianji.com \
|
||||
@@ -44,7 +55,5 @@ docker cp apps "$CONTAINER_NAME:/workspace/"
|
||||
docker start -a "$CONTAINER_NAME"
|
||||
EXIT_CODE=$(docker wait "$CONTAINER_NAME")
|
||||
|
||||
# 清理容器
|
||||
docker rm "$CONTAINER_NAME" 2>/dev/null || true
|
||||
|
||||
# 容器由 EXIT trap 的 cleanup_container 统一回收(失败/取消也保证清理)
|
||||
exit "$EXIT_CODE"
|
||||
|
||||
Reference in New Issue
Block a user