执行摘要
本 PR 为 FastDeploy 的 CI 系统添加了统一的 no_proxy 环境变量配置,覆盖 14 个 workflow 文件,旨在绕过内部域名和镜像源的代理访问,以减少网络不稳定导致的依赖安装失败,提升 CI 任务的稳定性和可靠性。这是一个常规的基础设施维护变更,风险较低但存在配置一致性问题需关注。
功能与动机
CI 任务在通过代理访问内部服务(如百度云存储 .bcebos.com)和第三方包镜像(如清华源 .tuna.tsinghua.edu.cn)时,常因网络不稳定而失败,影响依赖安装(如 pip install、wget)。为改善此问题,本 PR 显式配置 no_proxy 环境变量,使容器内请求直接连接这些域名,避免不必要的代理路由,从而提高 CI 系统的可靠性。
实现拆解
修改了 .github/workflows/ 目录下的 14 个 YAML 配置文件,在每个文件的 Docker 运行命令中添加一行环境变量设置。例如,在 _accuracy_test.yml 中:
-e "no_proxy=localhost,127.0.0.1,0.0.0.0,bcebos.com,.bcebos.com,bj.bcebos.com,su.bcebos.com,paddle-ci.gz.bcebos.com,apiin.im.baidu.com,baidu-int.com,.baidu.com,aliyun.com,gitee.com,pypi.tuna.tsinghua.edu.cn,.tuna.tsinghua.edu.cn"
关键改动点:
- 环境变量添加:统一在
docker run 命令中插入 -e "no_proxy=..."。
- 域名覆盖:包括本地地址、百度云服务、阿里云、Gitee 和清华镜像源等常用域名。
- 影响范围:涉及 accuracy test、base test、build、unit test 等多个 CI 流程,确保网络请求优化。
评论区精华
fastdeploy-bot 在 review 中提出了关键建议:
🟡 建议 发现以下 workflow 文件未被本次 PR 覆盖,但已有旧的 no_proxy 配置,建议同步更新以保持一致性:_build_xpu.yml、_xpu_4cards_case_test.yml、_xpu_8cards_case_test.yml、ci_hpu.yml。建议将这些文件的 no_proxy 值也更新为本次 PR 中的完整列表,确保所有 CI 任务行为一致。
此建议未被采纳或讨论,PR 已直接合并,可能导致 XPU/HPU 相关 CI 任务配置不一致,增加维护复杂度。
风险与影响
- 风险:
- 配置不一致:遗漏的 XPU/HPU 文件未更新,旧配置(如
bcebos.com,mirrors.tuna.tsinghua.edu.cn)与本次统一列表不同,可能引发网络访问行为差异。
- 维护成本:
no_proxy 字符串在 14 个文件中重复,未来更新需同步修改多个文件,易出错。
- 域名覆盖不足:列表可能未涵盖所有内部域名,但风险较低,因不影响核心代码。
- 影响:
- 积极影响:提升 CI 稳定性,减少代理导致的网络失败,加速构建和测试流程。
- 影响范围:仅限 CI 系统,对用户功能和产品代码无直接影响,但有助于团队开发效率。
关联脉络
从近期历史 PR 看,本 PR 是 FastDeploy CI 基础设施优化系列的一部分:
- PR 7264 和 PR 7244:同样聚焦 CI 环境变量配置,通过锁定版本或移除重复项提升稳定性。
- PR 7242:优化 CI 测试执行时间,与本 PR 共同致力于提高 CI 效率。
这些 PR 揭示了团队持续改进 CI 系统的趋势,关注网络、依赖和环境变量管理,以支持复杂的模型部署测试需求。
参与讨论