소스 검색

test(ci): 闭环脚本增加防重入锁,避免 30 分钟间隔下长耗时测试重叠

E2E Test Bot 2 주 전
부모
커밋
81beefff47
1개의 변경된 파일과 16개의 추가작업 그리고 3개의 파일을 삭제
  1. 16 3
      run_interface_tests_cron.sh

+ 16 - 3
run_interface_tests_cron.sh

@@ -13,6 +13,22 @@ set -uo pipefail
 REPO_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
 REPO_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
 cd "$REPO_DIR" || exit 1
 cd "$REPO_DIR" || exit 1
 
 
+LOG_DIR="$REPO_DIR/logs"
+mkdir -p "$LOG_DIR"
+
+# 防重入:若上轮仍在 25 分钟内,跳过本轮(避免 30 分钟间隔下长耗时测试重叠)
+LOCK="$LOG_DIR/.loop.lock"
+NOW=$(date +%s)
+if [ -f "$LOCK" ]; then
+  LAST=$(cat "$LOCK" 2>/dev/null || echo 0)
+  if [ $((NOW - LAST)) -lt 1500 ]; then
+    echo "[$(date +%H:%M:%S)] 上轮仍在运行(锁 $(( (NOW - LAST) / 60 )) 分钟前),跳过本轮"
+    exit 0
+  fi
+fi
+echo "$NOW" > "$LOCK"
+trap 'rm -f "$LOCK"' EXIT
+
 BRANCH="${CFC_BRANCH:-feature/ui-token-u5-color-tokens}"
 BRANCH="${CFC_BRANCH:-feature/ui-token-u5-color-tokens}"
 BASE_URL="${CFC_BASE:-http://192.168.16.251}"
 BASE_URL="${CFC_BASE:-http://192.168.16.251}"
 HOST_HDR="${CFC_HOST:-cfc.iwintrue.com}"
 HOST_HDR="${CFC_HOST:-cfc.iwintrue.com}"
@@ -20,9 +36,6 @@ TIMEOUT="${CFC_TIMEOUT:-3}"
 TEST_SCRIPT="ops_interface_smoke.py"
 TEST_SCRIPT="ops_interface_smoke.py"
 SCANNER="scan_frontend_endpoints.py"
 SCANNER="scan_frontend_endpoints.py"
 
 
-LOG_DIR="$REPO_DIR/logs"
-mkdir -p "$LOG_DIR"
-
 TS="$(date +%Y%m%d_%H%M%S)"
 TS="$(date +%Y%m%d_%H%M%S)"
 RUN_DIR="$LOG_DIR/run_$TS"
 RUN_DIR="$LOG_DIR/run_$TS"
 mkdir -p "$RUN_DIR"
 mkdir -p "$RUN_DIR"