集中管理Jenkinsfile

时间:2017-09-26 14:06:46

标签: jenkins jenkins-pipeline multibranch-pipeline

我正在使用Jenkins multibranch管道。 我在Pipeline语法生成器的帮助下创建了一个Jenkins文件。 我的Jenkinsfile正如预期的那样完美运行。

但现在我想集中管理这个Jenkinsfile,所以我不必将它复制到我的所有(git)回购。 我看到有一些选项可以使用通用的groovy脚本并将方法作为模块加载。 但这意味着我必须用不同的语法重写我的Jenkins文件?

我尝试了几种选择,但还没有成功。 例如,我已将jenkinsfile添加到其自己的git repo中,并且已将该repo添加为(代码)repo的子模块。 然后我尝试在Jenkins中配置如下图所示

这是前进的方向吗,有没有(简单的)方法来实现我想要完成的工作?

Jenkins configuration example

2 个答案:

答案 0 :(得分:1)

Jenkins共享库插件可以帮到你。查看docs

答案 1 :(得分:1)

你说得对,但另一个stackoverflow awnser帮助我解决了我的问题。奇怪的是,我再也找不到了:(。

简而言之:

我将整个管道减速定义为全局变量(在名为var \ soaPipeline.groovy的文件中)

def createSOAStandardDeclarativePipeline() {
        node {
            stage('checko.....

将Jenkinsfile添加到代码仓库中。该文件包含以下行:

soaPipeline.createSOAStandardDeclarativePipeline()

然后在jenkins中配置: jenkins configuration