对应英文文档:https://jenkins.io/doc/book/pipeline/development/
本系列主贴直达:https://testerhome.com/topics/11265
Jenkins Pipeline 有内嵌的文档和 Snipper Generator,这些是开发 Pipeline 的关键资源。它们针对当前版本的 Jenkins 和安装的插件提供详细的帮助和信息。本节,我们讨论开发 Jenkins Pipeline 的其他工具和资源。
在实际运行之前,Jenkins 能验证,或者 [lint](https://en.wikipedia.org/wiki/Lint_software) 一个申明式 Pipeline。这些通常是 Jenkins( CLI 命令或者带参数的 HTTP POST 请求完成的。我们推荐使用SSH interface。请参看Jenkins CLI 文档怎样配置 Jenkins 才能安全的命令行存取。
下面是两个 Pipeline Linter 的例子。第一个示例显示了 linter 在传递无效Jenkinsfile时的输出, 该结果是缺少代理agent声明的一部分。
一般来说 Pipeline 是定义在经典的 Jenkins Web 界面上,或者通过提交 Jenkinsfile 到源代码库中。不幸的是, 这两种方法都不适合对 Pipeline 进行快速迭代或原型化。“Replay” 特性允许在不更改 Pipeline 配置或创建新提交的情况下快速修改和执行现有 Pipeline。
使用” Replay” 特性:
•能被同一次运行多次调用—允许很容易的并行测试不同的特性
•能被在运行中的 Pipeline 调用执行—只要是包含正确 Groovy 语法的 Pipeline,就能被重复播放。
•能引用共享库的代码同样是可修改的—如果一个引用了共享库的 Pipeline 运行,共享库的代码同样能被展示和修改。
•有语法错误的 Pipeline 不能被重新播放 -- 这意味着无法查看其代码, 并且无法检索其中所做的任何更改。使用重播进行更重要的修改时, 请将更改保存到 Jenkins 外部的文件或编辑器中, 然后再运行它们。见JENKINS-37589。
•重播的 Pipeline 行为可能与由其他方法启动的运行不同 -- 对于不属于多分支 Pipeline 的 Pipeline, 提交信息可能会因原始运行和重播运行而异。见JENKINS-36453。
提示: Pipeline 单元测试框架是 Jenkins 项目不支持的 third-party 工具。
Pipeline 单元测试框架(Pipeline Unit Testing Framework)允许您在完全运行测试 Pipeline 和共享库之前对其进行单元检测。它提供了一个模拟执行环境, 其中实际的 Pipeline 步骤将替换为可用于检查预期行为的 mock 对象。新的和粗糙的边缘, 但承诺。该项目的自述文件包含示例和用法说明。