从作业DSL工厂创建Jenkins多分支管道作业

时间:2017-10-08 08:20:12

标签: jenkins jenkins-pipeline

是否可以通过作业DSL创建多分支管道作业,通过"管道脚本" 定义作业而不是每个Git存储库包含Jenkinsfile

我们想避免在我们的100个Git存储库中生成和维护相同的Jenkins文件(除了一些参数)。

目前我们正在使用Pipeline Jobs和Job DSL作为工厂作业播种,但我们对多分支构建(功能分支)的时间有限。因此,我们希望切换到多分支管道工作,但我们只限制它们。

我知道我们可以使用Jenkins文件(Git Repo of Project),其中包含Jenkins的其他常见Jenkins文件,但这只是一种解决方法。

1 个答案:

答案 0 :(得分:0)

只有管道作业可以内联定义管道。多分支工作不能,而JobDSL也无法改变这一点。

可能更好的选择是使用shared library。您可以将Jenkins配置为自动加载此库,以便所有repos中的特定Jenkinsfile只需要调用该函数。

你可以,例如查看Jenkinsfile a Jenkins plugin - 它只调用共享库中的函数:

buildPlugin()

在你的情况下(正如你写的“除了一些参数”),这个函数可能有一些参数可能因不同的作业而不同。 buildPlugin函数在https://github.com/jenkins-infra/pipeline-library/blob/master/vars/buildPlugin.groovy中实现。

虽然这仍然需要您更新所有回购,但这可能是在您的组织中引入管道的更好起点。