我有一个开源项目,该项目位于GitHub上,并使用由Jenkins控制的构建场构建。
我想使用管道以分支方式构建它,但是我不想在代码内存储Jenkinsfile。有没有办法做到这一点?
首先,为什么不希望在代码中使用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;