Jenkins 一直以来都是比较热门的用来做 CI/CD 的自动化工具, 如果你使用过 GitHub Action, 和它类似, 现在大多数的自动化工具都会提供 DSL(领域特定语言)去描述 & 编排自动化工作流, Jenkins 的 Pipeline Syntax 就是 Jenkins 提供的编排语言, 对应的编排文件一般称之为 Jenkinsfile, 语法规则和 Groovy 很类似.
我平常使用 Declarative Pipeline Syntax 比较多, Jenkinsfile 的管理一般都会使用一个 Git 仓库. 在本地编辑完成之后一直比较头疼的是语法的校验, 经常需要代码提交之后实际去跑 Pipeline 才能确认有没有语法问题.
其实这个语法校验在 Jenkins 的 UI 上配置是自带的, 但总不能每次在代码编辑器编辑之后再拷贝上去吧, Jenkins 的官方文档也有建议本地开发 Pipeline 的使用可以使用什么工具链 pipeline-development-tools. 可以使用命令行工具、Jenkins Open API、IDE 插件等可以去使用.
日常使用 Visual Studio Code 比较多, 所以最终选择了 vscode 的插件 vscode-jenkins-pipeline-linter-connector
, 这个插件原理实现上还是通过将 Jenkinsfile 的内容通过 API 提交给 Jenkins 去校验的.
不过插件已经年久失修了, 代码比较久了, 实际的使用上遇到了不少的问题, 例如: