You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

GitLab CI如何在后续阶段使用当前流水线推送的新提交?

GitLab CI流水线使用新版本代码的解决方案

GitLab CI 本身不支持直接更新当前流水线绑定的提交——流水线启动后就固定关联触发它的初始提交,后续阶段只会用这份代码执行,没法中途切换到新推送的提交。不过可以通过两种方案实现你的需求:

方案一:拆分流水线,利用提交触发后续流程

  • 第一阶段流水线:仅执行python-semantic-release的版本更新与提交推送(不要加[skip ci]),让这个新版本提交自动触发新流水线。
  • 配置新流水线的规则:只在提交信息包含版本更新标识(比如chore(release):)时,执行打包和文档发布阶段。
  • 优势:完全贴合GitLab CI原生工作流,逻辑清晰,无需额外权限配置。

方案二:同一流水线内拉取最新代码

  • 在python-semantic-release完成版本提交推送后,后续的打包、发布阶段先执行代码拉取操作,基于最新代码继续流程。
  • 注意事项:确保CI Runner拥有分支的拉取权限(可通过配置SSH密钥或使用CI_JOB_TOKEN实现),由于是工具自动生成的提交,冲突概率极低。
  • 示例步骤:
    1. 执行版本更新推送:
      python-semantic-release publish
      
    2. 拉取最新代码:
      git pull origin $CI_COMMIT_BRANCH
      
    3. 基于拉取后的代码执行打包、文档发布任务。

这种方式能在原流水线内完成所有操作,但需要额外处理代码拉取的权限配置。

内容的提问来源于stack exchange,提问作者iHowell

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 06:25:24