#jenkins #pipeline #declarative #parser #grammar #line #command

bin+lib jdp

Rust 原生解析器,用于 Jenkins 声明式流水线

4 个版本

0.2.2 2020 年 12 月 20 日
0.2.1 2020 年 12 月 20 日
0.2.0 2020 年 12 月 20 日
0.1.1 2020 年 12 月 20 日

#15 in #jenkins

LGPL-3.0+

34KB
737 行代码(不包括注释)

Jenkins 声明式解析器

此仓库包含 Jenkins 声明式流水线语法的语法和解析器,用于教育和测试目的 :)

命令行界面

此仓库提供了 jdp 命令行工具,可用于检查声明式 Jenkinsfile 的语法

[source,bash]

❯ jdp check data/valid/complex-deployment/Jenkinsfile
Checking: data/valid/complex-deployment/Jenkinsfile
Looks valid! Great work!

安装

您可以从链接:GitHub 发布 下载编译好的版本,或者只需运行 cargo install jdp

注意事项

此解析器 不是 Groovy 语法解析器,因此应基本上忽略 Jenkinsfile 中任何高级或奇怪的 Groovy 代码。这包括检查 script 步骤以确保存在 script 块,但其中任何内容都将明确忽略。

开发

jdp 的开发完全通过使用 cargo 来驱动,例如 cargo test

使用位于 data/ 中的 Jenkinsfile 的本地测试 Jenkins 环境来验证相对简单。但有一个重大缺点,即如果 Jenkins 上未安装某些插件,许多文件将无法通过验证。

创建本地 Jenkins 后,请确保在 /configureSecurity 视图中设置一个固定的 sshd 端口(例如 2022)。

[source]

find data/valid -iname Jenkinsfile -exec ./scripts/declarative-linter {}  \;

依赖关系

~6–14MB
~177K SLoC