fix(ci): 修复auto-merge checkout缓存损坏 + 清理老合并脚本 #484

Merged
auto-approve-bot merged 3 commits from fix/auto-merge-checkout-and-legacy-cleanup into develop 2026-07-17 20:22:43 +08:00
Owner

背景

PR #482 暴露了 auto-merge 相关的两个问题:

  1. auto-merge.ymlauto-approve.yml 仍使用 actions/checkout@v3,runner 本地缓存损坏会导致 job 直接挂掉
  2. 存在两套合并机制:CI 内置的 auto-merge.yml + 老脚本 scripts/auto_merge_prs.sh(可能还在 crontab 跑)

变更内容

1. 修复 checkout 缓存损坏问题

.gitea/workflows/auto-approve.yml.gitea/workflows/auto-merge.yml 中的 actions/checkout@v3 替换为与 ci-cd.yml 一致的 tar.gz 下载方式(python3 + urllib + tarfile):

  • 绕过 actions/checkout 的本地 git 缓存,避免缓存损坏导致 job 失败
  • 支持 5 次重试 + 指数退避,网络抖动时更稳定
  • 保持原有业务逻辑完全不变,只改 checkout 方式

2. 清理老合并脚本

删除 scripts/auto_merge_prs.sh,该脚本已由 .gitea/workflows/auto-merge.yml 完全替代。

调查结论(基于 Gitea API 审计):

  • 7月14日 auto-approve-bot 用户创建之前,所有自动合并 PR 的 merged_by 均为 xiaoxia(老脚本使用管理员 token)
  • 7月17日起,所有自动合并 PR 的 merged_by 均为 auto-approve-bot(CI workflow 使用的 bot token)
  • 过渡期(7月15-16日)两种方式并存,7月17日后 CI 内置版已完全接管
  • 因 SSH 不可用未能直接验证服务器 crontab,但从合并审计数据看老脚本已无实际作用

CI 内置版相对老脚本的优势:

  • 触发更及时:PR 事件即时触发 vs crontab 轮询
  • 更多 CI 检查项:4 门禁(含集成测试) vs 2 门禁
  • 更安全的合并方式:squash merge + 自动删源分支 vs 普通 merge
  • 与审批流程联动:必须有 approval 才合并

影响范围

  • 仅修改 CI workflow 的 checkout 方式,业务逻辑不变
  • 删除已废弃的脚本文件,无运行时影响
## 背景 PR #482 暴露了 auto-merge 相关的两个问题: 1. `auto-merge.yml` 和 `auto-approve.yml` 仍使用 `actions/checkout@v3`,runner 本地缓存损坏会导致 job 直接挂掉 2. 存在两套合并机制:CI 内置的 `auto-merge.yml` + 老脚本 `scripts/auto_merge_prs.sh`(可能还在 crontab 跑) ## 变更内容 ### 1. 修复 checkout 缓存损坏问题 将 `.gitea/workflows/auto-approve.yml` 和 `.gitea/workflows/auto-merge.yml` 中的 `actions/checkout@v3` 替换为与 `ci-cd.yml` 一致的 tar.gz 下载方式(python3 + urllib + tarfile): - 绕过 actions/checkout 的本地 git 缓存,避免缓存损坏导致 job 失败 - 支持 5 次重试 + 指数退避,网络抖动时更稳定 - 保持原有业务逻辑完全不变,只改 checkout 方式 ### 2. 清理老合并脚本 删除 `scripts/auto_merge_prs.sh`,该脚本已由 `.gitea/workflows/auto-merge.yml` 完全替代。 **调查结论(基于 Gitea API 审计):** - 7月14日 `auto-approve-bot` 用户创建之前,所有自动合并 PR 的 `merged_by` 均为 `xiaoxia`(老脚本使用管理员 token) - 7月17日起,所有自动合并 PR 的 `merged_by` 均为 `auto-approve-bot`(CI workflow 使用的 bot token) - 过渡期(7月15-16日)两种方式并存,7月17日后 CI 内置版已完全接管 - 因 SSH 不可用未能直接验证服务器 crontab,但从合并审计数据看老脚本已无实际作用 **CI 内置版相对老脚本的优势:** - 触发更及时:PR 事件即时触发 vs crontab 轮询 - 更多 CI 检查项:4 门禁(含集成测试) vs 2 门禁 - 更安全的合并方式:squash merge + 自动删源分支 vs 普通 merge - 与审批流程联动:必须有 approval 才合并 ## 影响范围 - 仅修改 CI workflow 的 checkout 方式,业务逻辑不变 - 删除已废弃的脚本文件,无运行时影响
xiaoxia added 3 commits 2026-07-17 19:55:00 +08:00
cleanup(ci): 删除老的auto_merge_prs.sh脚本,已由auto-merge.yml完全接管
CI Build & Deploy Pipeline / Build Staging API Image (pull_request) Has been skipped
CI Build & Deploy Pipeline / Build Staging Worker Image (pull_request) Has been skipped
CI Build & Deploy Pipeline / Build Staging Web Image (pull_request) Has been skipped
CI Build & Deploy Pipeline / Build Production API Image (pull_request) Has been skipped
CI Build & Deploy Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) 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 Build & Deploy Pipeline / Build Production Web Image (pull_request) Has been skipped
CI Build & Deploy Pipeline / Build Production Worker Image (pull_request) 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 / Check if frontend-only change (pull_request) Successful in 13s
Auto Approve CI PRs / Auto Approve on CI Green (pull_request) Successful in 14s
Auto Merge CI PRs / Auto Merge on CI Green + Approved (pull_request) Successful in 15s
AI Code Review / AI Code Review (pull_request) Failing after 28s
CI/CD Pipeline / Frontend Lint (pull_request) Successful in 48s
CI/CD Pipeline / Validate Code Quality And Tests (pull_request) Successful in 1m56s
CI/CD Pipeline / Integration Tests (pull_request) Successful in 1m26s
CI/CD Pipeline / Unit Tests (pull_request) Successful in 3m23s
0d743e2511
auto-approve-bot approved these changes 2026-07-17 19:55:14 +08:00
auto-approve-bot left a comment
Collaborator

CI全绿,自动审批通过。

CI全绿,自动审批通过。
auto-approve-bot approved these changes 2026-07-17 19:55:14 +08:00
auto-approve-bot left a comment
Collaborator

CI全绿,自动审批通过。

CI全绿,自动审批通过。
Collaborator

Auto merge failed: PR may have conflicts or unresolved checks. Please review manually.

Auto merge failed: PR may have conflicts or unresolved checks. Please review manually.
auto-approve-bot merged commit f1d3d4847c into develop 2026-07-17 20:22:43 +08:00
auto-approve-bot deleted branch fix/auto-merge-checkout-and-legacy-cleanup 2026-07-17 20:22:43 +08:00
Sign in to join this conversation.