如何在Jenkins流水线中调用其他流水线或在stage中调用独立Jenkinsfile
解决方案
你可以根据自身使用场景选择以下两种方案实现需求:
方案1:已为ing单独创建Jenkins任务
该方案适合需要两个流水线的执行记录独立归档、单独统计的场景,你现有代码逻辑正确,仅需按需补充可选参数即可,修正后示例如下:
pipeline{ agent any stages{ stage('one'){ steps{ echo 'hi' } } stage('two'){ steps{ // wait设为true代表主流水线等待ing任务执行完成再继续,propagate设为true代表ing任务失败会同步触发主流水线失败 build(job: 'ing', wait: true, propagate: true) } } } }
注意事项:
- 确保
job参数填写的名称和Jenkins中已创建的ing任务名称完全一致 - 主流水线对应的服务账号需要拥有
ing任务的构建权限
方案2:两个Jenkinsfile存放在同一个代码仓库,未单独创建ing任务
该方案适合仅需复用构建逻辑,不需要为ing单独维护Jenkins任务的场景,可直接使用load方法在当前流水线中加载并执行另一个Jenkinsfile,示例如下:
pipeline{ agent any stages{ stage('one'){ steps{ echo 'hi' } } stage('拉取代码'){ steps{ // 替换为你实际的Git仓库地址和对应分支 git url: '你的Git仓库地址', branch: '对应分支' } } stage('two'){ steps{ // 按ing文件在仓库中的实际路径填写,若在仓库根目录直接写文件名即可 load 'ing' } } } }
注意事项:
- 需根据
ing文件在仓库中的实际存放路径调整load后的路径参数 - 若
ing为声明式流水线,加载后会直接执行其内部定义的所有构建逻辑
内容的提问来源于stack exchange,提问作者ramesh
相关产品推荐
相关产品推荐

