Jenkins Templating Engine
先说结论
挺简单的, 使用的人还不多. 值得一试
前提条件:
- 你的 Jenkins job 只能是 pipeline style
- 你的 Jenkins job 很多, 但是很多 job 都是做重复性的工作,值得抽象出来进行复用
- 你还是得写 Jenkins DSL 做为 seed job
不好的点
- 还是要写 groovy
- 如何拆分你的 stage ? 拆的太细小, 你的 library 目录下面就会有超级多的 groovy 文件
- 组织你写的很多个 library 是一件体验不好的工作. 你可能会迷失在里面
- 官方的文档不够通俗易懂, 例子太少
- 资料太少,只能翻 issue 看看有没有人遇到和你一样的问题.
好的点
- 作者很积极的在维护和推广该项目, issue 基本上都有解决
介绍
我不想照抄文档,所以这里就不写了.有兴趣可以自己去研究文档, 对, 是研究. 一行一行的读官方的文档. 然后自己去尝试 反正我花了三周的时间…
还是写点吧, 不然太水了.
主要的概念就是那么几个,
Library 说白了就是你的 pipeline 的 stage block 你可以一个 stage 一个library, 也可以多个 stage 一个 library. 按需分配, 但是记得不要有相同文件名的 library. 我通常是加 perfix或者suffix
library config 这个是 library 的配置文件,但是它起到的作用只是定义你的 library 的参数有哪些. 哪些是必要的,哪些是可选的.以及参数的类型是什么? String, Map etc…
pipeline template. 也是就是 Jenkinsfile. 组织你的 library 在里面就好, 记得填写参数 注意按照我的需求我创建了多个 pipeline template 比如 部署部分叫 deploy.Jenkinsfile, 编译部分叫 build.jenkinsfile
pipeline config 你的 pipeline template 的配置文件, 这个文件一层目录只能有一个, 但是可以按照目录层级进行继承. 你可以选择 merge, 也可以是 override