在编写jenkins管道时,提交每个新更改以查看它是否有效似乎非常不方便。
是否有一种方法可以在本地执行这些而不提交代码?
在编写jenkins管道时,提交每个新更改以查看它是否有效似乎非常不方便。
是否有一种方法可以在本地执行这些而不提交代码?
当前回答
您可以验证您的管道以找出语法问题。Jenkins有很好的用于Jenkisfile验证的API - https://jenkins_url/pipeline-model-converter/validate
使用curl并传递.Jenkinsfile,您将立即得到语法检查
curl --user username:password -X POST -F "jenkinsfile=<jenkinsfile" https://jenkins_url/pipeline-model-converter/validate
您可以将此工作流添加到编辑器:
VS代码 崇高的文本
其他回答
除了其他人已经提到的重放功能(关于它的有用性也一样!),我发现以下功能也很有用:
创建一个测试管道作业,您可以在其中键入管道代码或指向Jenkinsfile的repo/分支来快速测试一些东西。为了更准确的测试,使用Multibranch Pipeline,它指向你自己的fork,在那里你可以快速做出改变并提交,而不影响proch。 由于Jenkinsfile是Groovy代码,只需使用“Groovy Jenkinsfile”调用它来验证基本语法。
将SSH密钥放入Jenkins配置文件,然后使用声明式linter,如下所示:
ssh jenkins.hostname.here declarative-linter < Jenkinsfile
这将对你的詹金斯档案进行静态分析。在您选择的编辑器中,定义一个自动运行该命令的键盘快捷方式。在Visual Studio Code中,这是我使用的,转到Tasks > Configure Tasks,然后使用以下JSON创建一个Validate Jenkinsfile命令:
{
"version": "2.0.0",
"tasks": [
{
"label": "Validate Jenkinsfile",
"type": "shell",
"command": "ssh jenkins.hostname declarative-linter < ${file}"
}
]
}
使用VS Code Jenkins Jack扩展,你可以在不使用git推送的情况下测试你的Jenkins文件,从你的本地文件到本地或远程运行的Jenkins。你将在VS Code中有作业的运行日志,能够在Jenkins中创建作业和更多的工作人员。我希望这有助于更多的人寻找一种方法来开发詹金斯档案。
在我的开发设置中(缺少合适的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有很好的用于Jenkisfile验证的API - https://jenkins_url/pipeline-model-converter/validate
使用curl并传递.Jenkinsfile,您将立即得到语法检查
curl --user username:password -X POST -F "jenkinsfile=<jenkinsfile" https://jenkins_url/pipeline-model-converter/validate
您可以将此工作流添加到编辑器:
VS代码 崇高的文本