fix(ci): migration safety检查稳定性加固 #384

Merged
xiaoxia merged 1 commits from fix/migration-safety-reliability into develop 2026-07-16 09:01:07 +08:00
Owner

问题

migration safety检查经常误报历史迁移中的op.drop_column为高风险,导致Validate步骤变红。根因是API调用失败/环境变量缺失时降级全量扫,把历史迁移也扫了进来。

修复

  1. API重试机制:3次重试+指数退避(1s/2s/4s),避免网络抖动导致降级
  2. 环境变量兼容:同时支持Gitea/GitLab/GitHub命名(GITEA_* / GITHUB_* / CI_*)
  3. git diff兜底:API失败时fallback到本地git diff --diff-filter=A方式找新增迁移
  4. 降级警告:最后才全量扫,并输出明确的环境变量排查指引

效果

  • 正常PR:只扫本次新增的迁移文件,历史迁移中的drop_column不再误报
  • API挂了:git diff兜底,仍能准确识别新增迁移
  • 都挂了:全量扫兜底+明确警告
## 问题 migration safety检查经常误报历史迁移中的op.drop_column为高风险,导致Validate步骤变红。根因是API调用失败/环境变量缺失时降级全量扫,把历史迁移也扫了进来。 ## 修复 1. **API重试机制**:3次重试+指数退避(1s/2s/4s),避免网络抖动导致降级 2. **环境变量兼容**:同时支持Gitea/GitLab/GitHub命名(GITEA_* / GITHUB_* / CI_*) 3. **git diff兜底**:API失败时fallback到本地git diff --diff-filter=A方式找新增迁移 4. **降级警告**:最后才全量扫,并输出明确的环境变量排查指引 ## 效果 - 正常PR:只扫本次新增的迁移文件,历史迁移中的drop_column不再误报 - API挂了:git diff兜底,仍能准确识别新增迁移 - 都挂了:全量扫兜底+明确警告
xiaoxia force-pushed fix/migration-safety-reliability from e7fc555da9 to 0443ed9e84 2026-07-16 08:19:56 +08:00 Compare
xiaoxia added 1 commit 2026-07-16 08:48:49 +08:00
fix(ci): migration safety检查稳定性加固
CI Build & Deploy Pipeline / Build Staging Web Image (push) Has been skipped
CI Build & Deploy Pipeline / Build Staging API Image (push) Has been skipped
CI Build & Deploy Pipeline / Build Staging Worker Image (push) Has been skipped
CI Build & Deploy Pipeline / Build Staging API Image (pull_request) Has been skipped
CI Build & Deploy Pipeline / Build Staging Web Image (pull_request) Has been skipped
CI Build & Deploy Pipeline / Build Staging Worker Image (pull_request) Has been skipped
CI Build & Deploy Pipeline / Deploy Staging (Watchtower auto-deploy) (push) Has been skipped
CI Build & Deploy Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Has been skipped
CI Build & Deploy Pipeline / Staging E2E Tests (push) Has been skipped
CI Build & Deploy Pipeline / Staging API Integration Tests (push) Has been skipped
CI Build & Deploy Pipeline / Staging E2E Tests (pull_request) Has been skipped
CI Build & Deploy Pipeline / Staging API Integration Tests (pull_request) Has been skipped
CI/CD Pipeline / Frontend Lint (pull_request) Successful in 1m7s
CI/CD Pipeline / Frontend Lint (push) Successful in 1m8s
CI Build & Deploy Pipeline / Build Production API Image (push) Has been skipped
CI Build & Deploy Pipeline / Build Production Web Image (push) Has been skipped
CI Build & Deploy Pipeline / Build Production Worker Image (push) Has been skipped
CI Build & Deploy Pipeline / Build Production API Image (pull_request) Has been skipped
CI Build & Deploy Pipeline / Build Production Worker Image (pull_request) Has been skipped
CI Build & Deploy Pipeline / Build Production Web Image (pull_request) Has been skipped
CI Build & Deploy Pipeline / Deploy Production (push) Has been skipped
CI Build & Deploy Pipeline / Production Browser E2E (push) Has been skipped
CI Build & Deploy Pipeline / Deploy Production (pull_request) Has been skipped
CI Build & Deploy Pipeline / Production Browser E2E (pull_request) Has been skipped
CI/CD Pipeline / Unit Tests (push) Successful in 2m27s
CI/CD Pipeline / Unit Tests (pull_request) Successful in 2m33s
CI/CD Pipeline / Validate Code Quality And Tests (pull_request) Failing after 16m38s
CI/CD Pipeline / Validate Code Quality And Tests (push) Failing after 16m38s
CI/CD Pipeline / Integration Tests (pull_request) Successful in 1m55s
CI/CD Pipeline / Integration Tests (push) Successful in 2m0s
0386b9b34e
- API调用增加3次重试+指数退避,避免网络抖动导致降级全量扫
- 同时支持Gitea/GitHub环境变量命名(GITEA_* / GITHUB_*)
- API失败时fallback到git diff方式找新增迁移
- 最后兜底才全量扫,并输出明确警告和排查建议
- 彻底解决历史迁移drop_column被误扫为高风险的flaky问题
xiaoxia force-pushed fix/migration-safety-reliability from 0443ed9e84 to 0386b9b34e 2026-07-16 08:48:49 +08:00 Compare
xiaoxia merged commit 26eedfae3d into develop 2026-07-16 09:01:07 +08:00
Sign in to join this conversation.