如何从内部触发另一个作业的生成Jenkinsfile?
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中的每个存储库和分支创建和维护作业。
首先,将build步骤包装进去很浪费执行器插槽node。您的上游执行者将无故闲着。
build
node
其次,在多分支项目中,可以使用环境变量BRANCH_NAME使逻辑在当前分支上成为条件。
BRANCH_NAME
第三,该job参数采用绝对或相对的作业名称。如果您提供的名称没有任何路径限定,则将引用同一文件夹中的另一个作业,对于多分支项目,这将意味着同一存储库的另一个分支。
job
因此,您打算写的可能是
if (env.BRANCH_NAME == 'master') { build '../other-repo/master' }