一尘不染

具有外部定义的Jenkinsfile的多分支配置

jenkins

我有一个开源项目,该项目位于GitHub上,并使用由Jenkins控制的构建场构建。

我想使用管道以分支方式构建它,但是我不想在代码内存储Jenkinsfile。有没有办法做到这一点?


阅读 390

收藏
2020-07-25

共1个答案

一尘不染

首先,为什么不希望在代码中使用Jenkinsfile?管道和构建文件一样,是代码的一部分。

除此之外,您还可以加载常规文件以将其评估为管道脚本。您可以使用from SCM选项从其他位置执行此操作,然后签出实际代码。但这将迫使您手动处理分支构建。

另一个选择是拥有一个非常基本的Jenkinsfile,它仅签出一个外部管道。

您将获得如下内容:

node{
    deleteDir()

    git env.flowScm
    def flow = load 'pipeline.groovy'
    stash includes: '**', name: 'flowFiles'

    stage 'Checkout'
    checkout scm // short hand for checking out the "from scm repository"

    flow.runFlow()
}

pipeline.groovy文件将包含实际管道的位置如下所示:

def runFlow() {
    // your pipeline code

}

// Has to exit with 'return this;' in order to be used as library
return this;
2020-07-25