Prhub

#7198 [CI] Improve Code Prepare stability and cleanup logic

PaddlePaddle/FastDeploy · 作者 EmmonsCurse · 合并时间 2026-04-07 10:31

分析状态 已生成
文件变更 8提交数 5 · 评论 4
代码增减 +140 / -23
CI infra Optimization

执行摘要

优化 CI Code Prepare 阶段的清理逻辑,提升自托管 runner 上的稳定性。

PR body明确指出:'The Code Prepare stage has stability issues on self-hosted runners, especially when jobs are cancelled. In such cases, residual directories or root-owned files may remain in the workspace, causing subsequent runs to fail during cleanup or extraction.' 这表明动机是解决CI环境中的清理失败问题,提高整体CI流程的鲁棒性。

建议CI维护者和负责基础设施的工程师精读此PR,关注其设计决策如多层清理策略和错误处理改进。对于普通开发者,了解CI稳定性的提升即可。

讨论亮点

review中,fastdeploy-bot指出force cleanup逻辑只清理目录,可能遗漏普通文件,建议扩展处理。但该建议未在PR中被采纳或讨论,评论状态为COMMENTED,表明可能存在未解决的疑虑。其他reviewer(ZhangYulongg)批准了PR,未提出其他意见。

实现拆解

实现方案涉及修改8个GitHub Actions workflow文件(如_accuracy_test.yml、_base_test.yml等)。关键改动包括:在清理失败时使用find命令强制删除残留目录并更改权限;为wget和tar命令添加错误检查和日志;使用--no-same-owner选项避免解压时的权限问题;引入重试机制作为后备。所有修改集中在CI脚本层面,未触及核心业务代码。

文件 模块 状态 重要度
.github/workflows/_accuracy_test.yml CI Infrastructure modified 5.0
.github/workflows/_base_test.yml CI Infrastructure modified 5.0
.github/workflows/_logprob_test_linux.yml CI Infrastructure modified 6.0

分析完成后,这里会展示 LLM 生成的相对完整源码片段和详细注释。

评论区精华

Force cleanup 可能遗漏普通文件 正确性

fastdeploy-bot 建议修改 find 命令以同时处理文件和目录,指出当前逻辑只清理目录可能遗漏普通文件。

结论:建议未在 PR 中被采纳,状态未解决。 · 待处理

风险与影响

技术风险包括:1. 清理逻辑可能不完整,fastdeploy-bot指出的普通文件残留风险。2. 新增的find和chmod命令依赖于特定环境权限,可能在不同runner上表现不一致。3. 错误处理虽改进,但可能仍有边缘情况未覆盖,如网络问题导致的下载失败。4. --no-same-owner选项可能在某些tar版本中不支持,但风险较低。

影响范围:对用户透明,但间接提升CI测试的可靠性,减少因环境问题导致的失败。对团队:工程师将受益于更稳定的CI流水线,减少手动干预。系统:CI基础设施更健壮,降低维护成本。影响程度:中等,局限于CI流程,不直接影响产品功能。

清理逻辑不完整 环境依赖风险

关联 Issue

未识别关联 Issue

当前没有检测到明确关联的 Issue 链接,后续同步到相关引用后会出现在这里。

完整报告

执行摘要

本PR优化了FastDeploy CI流水线中Code Prepare阶段的稳定性,通过增强清理逻辑和错误处理,减少self-hosted runners上因作业取消导致的残留文件问题。这提升了自动化测试的可靠性,对团队开发效率有积极影响。

功能与动机

动机源于CI Code Prepare阶段在self-hosted runners上的稳定性问题,特别是作业被取消时,残留的root-owned文件或目录会导致后续运行失败。PR body中明确提到此问题,旨在通过改进清理机制来解决。

实现拆解

修改了8个GitHub Actions workflow文件,关键改动包括:

  • 在清理失败时,使用find命令强制删除残留目录并更改权限。
  • wget下载和tar解压添加错误检查和详细日志。
  • 使用--no-same-owner选项避免解压时的权限不一致。
  • 引入多层清理策略,从常规删除到基于容器的后备。

评论区精华

review中,fastdeploy-bot指出force cleanup逻辑只针对目录,可能遗漏普通文件,并提供了改进建议。然而,该建议未在PR中被采纳,评论状态为COMMENTED,表明可能存在未解决的技术疑虑。

风险与影响

风险包括清理逻辑不完整(fastdeploy-bot指出的问题)、新增命令的环境依赖性、以及错误处理可能未覆盖所有边缘情况。影响方面,CI流程更稳定,间接提升团队开发效率和测试质量,但不直接影响产品核心功能。

关联脉络

本PR与近期其他CI优化PR(如#7186、#7138、#7132)一脉相承,共同推动FastDeploy CI基础设施的健壮性改进。这些变更反映了团队对自动化测试稳定性的持续关注。

参与讨论