如何从内部触发另一个作业的构建Jenkinsfile?
Jenkinsfile
我假设这项工作是同一个github 组织下的另一个存储库,一个已经有自己的 Jenkins 文件的存储库。
我还想仅在分支名称为 master 时执行此操作,因为触发任何本地分支的下游构建是没有意义的。
更新:
stage 'test-downstream' node { def job = build job: 'some-downtream-job-name' }
不过,执行时我得到一个错误
找不到名为 some-downtream-job-name 的参数化作业
我确信这项工作存在于 jenkins 中,并且与当前工作位于同一组织文件夹下。这是另一项有自己的工作Jenkinsfile。
请注意,此问题特定于GitHub 组织插件,它会自动为您的 GitHub 组织中的每个存储库和分支创建和维护作业。
build首先,将步骤包装在node. 您的上游执行器将无缘无故地闲置。
build
node
其次,从多分支项目中,您可以使用环境变量BRANCH_NAME使逻辑以当前分支为条件。
BRANCH_NAME
第三,job参数采用绝对或相对作业名称。如果您给出一个没有任何路径限定的名称,那将引用同一文件夹中的另一个作业,在多分支项目的情况下,这意味着同一存储库的另一个分支。
job
因此,您要写的可能是
if (env.BRANCH_NAME == 'master') { build '../other-repo/master' }