我怎样才能用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和维护作业。

首先,浪费一个执行者槽来包装nodebuild步骤。 您的上游执行者将无缘无故地闲置。

其次,从多分支项目中,可以使用环境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中读取它