在编写jenkins管道时,提交每个新更改以查看它是否有效似乎非常不方便。

是否有一种方法可以在本地执行这些而不提交代码?


当前回答

Jenkins有一个“重放”功能,它可以让你快速重放作业而不更新源:

其他回答

据我所知,这个管道插件是新的Jenkinsfile机制的“引擎”,所以我非常肯定你可以用它来本地测试你的脚本。

我不确定是否有任何额外的步骤,当你复制到一个Jenkinsfile,但语法等应该完全相同。

编辑:在“引擎”上找到了参考,检查这个功能描述,最后一段,第一个条目。

Jenkins有一个“重放”功能,它可以让你快速重放作业而不更新源:

有一些限制,对于脚本管道,我使用这个解决方案:

使用内联groovy脚本的管道作业:


node('master') {
    stage('Run!') {
                def script = load('...you job file...')
    }
}

用于测试的Jenkinsfile具有与lesfuret相同的结构:


def execute() {
 ... main job code here ...
}
execute()

在我的开发设置中(缺少合适的Groovy编辑器),大量的Jenkinsfile问题源于简单的语法错误。要解决这个问题,你可以根据Jenkins实例验证Jenkinsfile(运行在$JENKINS_HTTP_URL):

curl -X POST -H $(curl '$JENKINS_HTTP_URL/crumbIssuer/api/xml?xpath=concat(//crumbRequestField,":",//crumb)') -F "jenkinsfile=< jenkinsfile " $JENKINS_HTTP_URL/管道模型转换器/验证

上面的命令是对 -a-Declarative-Jenkinsfile-from-the-command-line https://github.com/jenkinsci/pipeline-model-definition-plugin/wiki/Validating- (or-linting)

在撰写本文时(2017年7月底),使用Blue Ocean插件,您可以直接在可视化管道编辑器中检查声明式管道的语法。当你点击“配置”时,编辑器从蓝海UI工作,仅用于github项目(这是一个已知的问题,他们正在努力使它也适用于git等)。

但是,正如在这个问题中解释的那样,你可以打开编辑器浏览到:

詹金斯[URL] /蓝色/组织/ Jenkins / pipeline-editor /

然后单击页面中间,并按Ctrl+S,这将打开一个文本区域,您可以在其中粘贴管道声明性脚本。当您单击Update时,如果有语法错误,编辑器将告诉您语法错误在哪里。就像这张截图:

如果没有语法错误,文本区域将关闭,页面将显示您的管道。别担心,它不会保存任何东西(如果它是一个github项目,它会提交Jenkinsfile更改)。

我是Jenkins的新手,这是非常有用的,没有这个,我不得不多次提交一个Jenkins文件,直到它工作(非常讨厌!)希望这能有所帮助。欢呼。