一尘不染

如何使用GitHub Org插件从jenkins管道(jenkinsfile)触发另一个工作?

jenkins

如何从内部触发另一个作业的生成Jenkinsfile

我假设这项工作是同一个github组织下的另一个存储库,该存储库已经有自己的Jenkins文件。

我也只想在分支名称为master时执行此操作,因为触发任何本地分支的下游构建都没有意义。

更新:

stage 'test-downstream'
node {
     def job = build job: 'some-downtream-job-name'
}

不过,执行时我还是报错

找不到名为some-downtream-job-name的参数化作业

我确定这项工作存在于jenkins中,并且与当前工作位于同一组织文件夹下。这是另一项有自己的工作Jenkinsfile

请注意,此问题特定于GitHub Organization Plugin,该插件可自动为GitHub
Organization
中的每个存储库和分支创建和维护作业。


阅读 282

收藏
2020-07-25

共1个答案

一尘不染

首先,将build步骤包装进去很浪费执行器插槽node。您的上游执行者将无故闲着。

其次,在多分支项目中,可以使用环境变量BRANCH_NAME使逻辑在当前分支上成为条件。

第三,该job参数采用绝对或相对的作业名称。如果您提供的名称没有任何路径限定,则将引用同一文件夹中的另一个作业,对于多分支项目,这将意味着同一存储库的另一个分支。

因此,您打算写的可能是

if (env.BRANCH_NAME == 'master') {
    build '../other-repo/master'
}
2020-07-25