我怎样才能用GitHub Org插件从jenkinspipe道(jenkinsfile)中触发另一个工作?
我怎样才能从Jenkinsfile
内部触发构build另一个工作?
我认为这个工作是同一个github组织下的另一个仓库,已经有了自己的Jenkins文件。
我也想这样做只有当分支名称是主,因为它是没有意义的触发任何本地分支的下游构build。
更新:
stage 'test-downstream' node { def job = build job: 'some-downtream-job-name' }
不过,执行时,我得到一个错误
未find名为some-downtream-job-name的参数化作业
我相信这个工作存在于jenkins,并且与当前的组织文件夹在同一个文件夹下。 这是另一个有自己的Jenkinsfile
。
请注意,这个问题是特定于GitHub组织插件 ,它会自动为您的GitHub组织的每个存储库和分支创build和维护作业。
首先,浪费一个执行者槽来包装node
的build
步骤。 您的上游执行者将无缘无故地闲置。
其次,从多分支项目中,可以使用环境variablesBRANCH_NAME
在当前分支上设置逻辑条件。
第三, job
参数取绝对或相对的作业名称。 如果你给一个没有任何path限定的名字,那就是指同一个文件夹中的另一个作业,在一个多分支项目的情况下,这意味着同一个存储库的另一个分支。
所以你写的意思可能是
if (env.BRANCH_NAME == 'master') { build '../other-repo/master' }
除了上面提到的答案:我想用一个传递给第二个pipe道的简单参数开始一个工作,并在https://dzone.com/refcardz/continuous-delivery-with-jenkins-workflow上find了答案。;
所以我用:
stage ('Starting ART job') { build job: 'RunArtInTest', parameters: [[$class: 'StringParameterValue', name: 'systemname', value: systemname]] }
pipe道中的命令在那里触发jenkins中的其他工作。
在github上的例子
这个工作必须存在于jenkins,可以参数化。 至于分支,我想你可以从git中读取它