历史咨询
当前位置:主页 > 历史咨询 >
如何在提交 Jenkins Pipeline 之前对进行语法检查_科
发布日期:2020-05-29 05:35   来源:未知   阅读: 次 

在做 Jenkins 声明式流水线开发时常会遇到的问题是:Pipeline 看起来没有问题,当提交到代码仓库后进行 Jenkins 构建时发现原来有语法错误,然后再去修改、提交、构建,结果可能还有有其他没有注意到的语法问题。

为了减少这种因为语法错误而需要频繁像代码库去提交的情况,最好还是在提交之前进行“编译”检查,来查看当前的 Pipeline 是否存在语法错误。

经过调查发现 Jenkins 本身提供了这样的 REST API,可以直接使用这个 API 来对 Pipeline 声明式进行语法校验,这个方式需要执行一长串的 curl 命令,看起来似乎很麻烦,如果能在 IDE 里直接运行就好了。VS Code 作为当前当前最流行 IDE 工具,不负期望,果然是有插件的。

本文介绍了两种方式来实现如何对 Jenkins 声明式流水线在 Jenkins 构建执行前进行语法错误检查,这两种方式的原理都是通过调用 Jenkins REST API 来实现的。

注:当前只有声明式流水线支持语法校验,脚本式流水线不支持。

如果使用 Jenkins 回放功能或是使用 Jenkins Web 页面开发 Pipeline 不存在上述问题。REST API

如果你跟我一样为你的项目开发了 Jenkins Shared Libraries,为了方便使用 REST API,不妨可以在该仓库下面创建一个 linter.sh 文件,并将这个文件加到你的 .gitignore 里,这样你可以在这个文件里配置你的用户名和密码就不会意外的被提交到 Git 仓库中。linter.sh 脚本内容如下,供参考。# 如何使用# sh linter.sh your-jenkinsfile-path# 替换为你的 Jenkins 用户名username=admin# 替换为你的 Jenkins 密码password=admin# 替换为你的 Jenkins URLJENKINS_URL= --user $username:$password -X POST -F "jenkinsfile=

Preferences -> Settings -> Extensions, 找到 Jenkins Pipeline Linter Connector,参考如下配置。

VS Code 设置运行插件

右键 -> Command Palette -> Validate Jenkinsfile

执行快捷键 Shift + Alt + V执行效果

效果图总结

如果使用 VSCode 作为开发工具,推荐使用 Jenkins Pipeline Linter Connector 插件;如果是 Jenkins Shared Libraries 仓库不妨可以创建一个 shell 脚本,通过执行脚本来进行校验。当然,如果只是简单的使用 Jenkinfile 也可以在 Jenkins Web Pipeline 页面里编写,那里自带语法检查。

如果您还有别的方式,欢迎留言分享。

友情链接:

Power by DedeCms