在编写jenkins管道时,提交每个新更改以查看它是否有效似乎非常不方便。
是否有一种方法可以在本地执行这些而不提交代码?
在编写jenkins管道时,提交每个新更改以查看它是否有效似乎非常不方便。
是否有一种方法可以在本地执行这些而不提交代码?
当前回答
有点晚了,但这就是为什么我写了jenny,一个小的重新实现一些核心的Jenkinsfile步骤。(https://github.com/bmustiata/jenny)
其他回答
据我所知,这个管道插件是新的Jenkinsfile机制的“引擎”,所以我非常肯定你可以用它来本地测试你的脚本。
我不确定是否有任何额外的步骤,当你复制到一个Jenkinsfile,但语法等应该完全相同。
编辑:在“引擎”上找到了参考,检查这个功能描述,最后一段,第一个条目。
在我的开发设置中(缺少合适的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)
Jenkins有一个“重放”功能,它可以让你快速重放作业而不更新源:
有点晚了,但这就是为什么我写了jenny,一个小的重新实现一些核心的Jenkinsfile步骤。(https://github.com/bmustiata/jenny)
除了其他人已经提到的重放功能(关于它的有用性也一样!),我发现以下功能也很有用:
创建一个测试管道作业,您可以在其中键入管道代码或指向Jenkinsfile的repo/分支来快速测试一些东西。为了更准确的测试,使用Multibranch Pipeline,它指向你自己的fork,在那里你可以快速做出改变并提交,而不影响proch。 由于Jenkinsfile是Groovy代码,只需使用“Groovy Jenkinsfile”调用它来验证基本语法。