ci: 架构精简 - 合并4个workflow为2个,抽取公共步骤为脚本 #605
Reference in New Issue
Block a user
Delete Branch "ci/arch-refactor"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
#603 CI架构精简
变更内容
配置合并
公共步骤抽取(scripts/ci/)
step_checkout.sh- 代码checkout(带重试)step_timer_start.sh/step_timer_end.sh- job计时step_install_ffmpeg.sh- ffmpeg安装step_frontend_install.sh- 前端依赖安装(带缓存)step_frontend_run.sh- 前端命令docker执行封装大Job逻辑脚本化
run_validate.sh- 8项质量检查合一(密钥/格式/类型/安全/依赖/死代码/脚本/迁移)run_unit_tests.sh- 增量选择+覆盖率+diff-cover全流程run_integration_tests.sh- PG/Redis启动+迁移+测试+清理+覆盖率关键保障(不影响CI速度)
✅ workflow name 保持 CI/CD Pipeline 不变
→ status check context 名称完全一致,分支保护门禁和 auto-merge 不受影响
✅ 所有 job name 与原文件完全一致
→ Validate / Unit Tests / Frontend Lint / Integration Tests 等context名不变
✅ job间并行/依赖关系不变
→ 合并的是配置文件,不是把步骤串成一条线,lint/test/build/deploy并行关系完全保留
✅ 所有功能100%保留
→ lint / test / build / deploy / e2e / acr-cleanup / auto-approve / auto-merge 全保留
精简效果
风险等级
低 - 仅改动 .gitea/workflows/ 配置和新增 scripts/ci/ 脚本,不触碰任何业务代码。核心行为(job name / context / 触发条件 / 执行逻辑)完全保持一致。
🚀 预览环境已部署
代码审查结果 - PR #605
⚠️ 问题(0个需要修改)
(本次可见的 Diff 主要为文件删除操作,未发现必须修改的逻辑问题)
💡 建议(3个可选)
[auto-approve.yml / auto-merge.yml] 确保 API 分页处理或限制值足够
limit=300(.../files?limit=300)。如果 PR 变更文件超过 300 个,会导致文件统计不全,进而错误判断“纯前端改动”或“包含后端改动”。请确保新的实现(可能在scripts/ci/中)处理了分页逻辑或设置了足够大的限制值。[auto-approve.yml / auto-merge.yml] 避免硬编码 CI Context 名称
"CI/CD Pipeline / Frontend Lint (pull_request)")。这种写法非常脆弱,一旦 CI Pipeline 名称调整,自动化逻辑将失效。建议新实现采用动态获取 Context 或配置化的方式。[auto-approve.yml] 检查超时配置的边界条件
auto-approve.yml设置了timeout-minutes: 20,但轮询逻辑包含初始等待 30 秒 + 120 次 10 秒轮询,总时长可达 20.5 分钟。这存在极小概率的竞态条件(Job 在最后一次循环成功前超时)。建议新实现调整轮询次数或超时时间,确保timeout-minutes略大于理论最大等待时长。✅ 格式检查通过 | ✅ 逻辑审查需修改 | ✅ 性能
🤖 由 AI 代码审查机器人自动生成 | 2026-07-19 18:54:51 | 模型:
CI全绿,自动审批通过。
CI全绿,自动审批通过。
🗑️ 预览环境已清理
PR #605 已关闭或合并,对应的预览环境已被清理。