如何从 Jenkinsfile
中触发另一个作业的构建?
我假设这个作业是同一个github organization下的另一个存储库,它已经有了自己的Jenkins文件 .
我也想在分支名称为master时执行此操作,因为触发任何本地分支的下游构建没有意义 .
更新:
stage 'test-downstream'
node {
def job = build job: 'some-downtream-job-name'
}
仍然,执行时我得到一个错误
找不到名为some-downtream-job-name的参数化作业
我确信这个工作存在于jenkins中,并且与当前工作文件夹在同一组织文件夹下 . 另一项工作有自己的 Jenkinsfile
.
请注意,此问题特定于GitHub Organization Plugin,它为您的GitHub组织中的每个存储库和分支自动创建和维护作业 .
3 回答
除了上面提到的答案:我想通过传递给第二个管道的简单参数开始一个工作,并在https://dzone.com/refcardz/continuous-delivery-with-jenkins-workflow找到答案 .
所以我用过:
管道中的命令
build
用于触发jenkins中的其他作业 .Example on github
该工作必须存在于Jenkins中并且可以进行参数化 . 至于分支,我想你可以read it from git
首先,在
node
中包装build
步骤是浪费执行程序槽 . 您的上游执行者将无缘无故地闲置 .其次,从multibranch项目中,您可以使用环境变量
BRANCH_NAME
使逻辑以当前分支为条件 .第三,
job
参数采用绝对或相对作业名称 . 如果您给出一个没有任何路径限定的名称,那么它将引用同一文件夹中的另一个作业,在多分支项目的情况下,这将意味着同一个存储库的另一个分支 .因此,你打算写的可能是