Files
xiaoxia-saas/scripts/ci
xiaoxia 20a356e7d8
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 3m42s
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 4m37s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 6m1s
AI Code Review / AI Code Review (pull_request) Successful in 7m3s
CI/CD Pipeline / Dedup Check - skip PR tests when covered by push pipeline (pull_request) Successful in 1s
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 1m17s
CI/CD Pipeline / PR Build Worker Image (pull_request) Successful in 1m29s
CI/CD Pipeline / PR Build API Image (pull_request) Successful in 1m30s
CI/CD Pipeline / Validate - Migration (alembic) (pull_request) Successful in 7m57s
CI/CD Pipeline / Validate - Type Check (mypy) (pull_request) Successful in 9m3s
CI/CD Pipeline / Validate - Code Quality (pull_request) Successful in 17m18s
CI/CD Pipeline / Unit Tests (pull_request) Failing after 26m3s
CI/CD Pipeline / Integration Tests (pull_request) Successful in 11m30s
CI/CD Pipeline / CI Gate (pull_request) Failing after 23s
CI/CD Pipeline / Production Browser E2E (pull_request) Failing after 399h18m31s
CI/CD Pipeline / Deploy Production (pull_request) Failing after 399h18m32s
CI/CD Pipeline / Build Production Worker Image (pull_request) Failing after 399h18m34s
CI/CD Pipeline / Build Production Web Image (pull_request) Failing after 399h18m35s
CI/CD Pipeline / Build Production API Image (pull_request) Failing after 399h18m35s
CI/CD Pipeline / PR Build Web Image (pull_request) Failing after 399h44m39s
CI/CD Pipeline / ACR Image Cleanup (pull_request) Failing after 399h45m47s
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Failing after 399h45m49s
CI/CD Pipeline / Build Staging Worker Image (pull_request) Failing after 399h45m53s
CI/CD Pipeline / Build Staging Web Image (pull_request) Failing after 399h45m53s
CI/CD Pipeline / Retag skipped Staging Web Image (pull_request) Failing after 399h45m51s
CI/CD Pipeline / Check push changed paths (pull_request) Failing after 399h45m57s
CI/CD Pipeline / Canary Release to Production (pull_request) Failing after 399h52m41s
CI/CD Pipeline / Frontend Unit Tests (pull_request) Failing after 400h18m47s
CI/CD Pipeline / Staging API Integration Tests (pull_request) Failing after 400h19m55s
CI/CD Pipeline / Retag skipped Staging Worker Image (pull_request) Failing after 400h19m59s
CI/CD Pipeline / Build Staging API Image (pull_request) Failing after 400h20m1s
CI/CD Pipeline / Frontend Lint (pull_request) Failing after 400h18m48s
CI/CD Pipeline / Staging E2E Tests (pull_request) Failing after 400h19m56s
CI/CD Pipeline / Retag skipped Staging API Image (pull_request) Failing after 400h20m0s
fix(ci): 定时任务防僵尸自保——urlopen补超时+扫描墙钟上限+降频
P0修复:pr_auto_scan.py 的 api_request() 中 urlopen 无 timeout,
网络异常时永久阻塞(2026-08-30 实测卡死195分钟占满runner slot),
而 Gitea 1.26.4 的 timeout-minutes 对卡死job不生效。

改动:
1. pr_auto_scan.py: urlopen 加 timeout=15s + URLError/socket.timeout
   异常捕获(返回599);新增 --max-wall-seconds(默认240s)墙钟上限,
   到点主动退出;merge_pr 的 sleep(30) 改为可中断轮询
2. acr_cleanup.py: 7处 urlopen 补 timeout=30s(生产清理链路同款隐患)
3. auto_fix_formatting.py: 5处 urlopen 补 timeout=15s
4. pr-auto-scan.yml / ci-trigger-monitor.yml: schedule 从 */5 降到 */10,
   24h运行次数各减半(288→144),监控告警阈值同步为10分钟
2026-08-30 22:47:18 +08:00
..