公司目前的Jenkins pipeline任务多,在随着版本及任务需求变化,发现要变更一个任务时,要大量变更多个job,甚是麻烦。
看了下jenkins官网,Global Pipeline Libraries正好可以满足我的需求,那就学起来吧,看看怎么用了。
一、groovy脚本
首先第一步肯定是要把在pipeline任务中的流水线改成脚本形式,这里拿个网上的例子,如下:
文件名就叫sayHello.groovy
#!/usr/bin/env groovy def call(String name = 'human') { echo "Hello, ${name}." }
那么将该脚本放在哪呢?放个官网的树吧
(root) +- src # Groovy source files | +- org | +- foo | +- Bar.groovy # for org.foo.Bar class +- vars | +- foo.groovy # for global 'foo' variable | +- foo.txt # help for 'foo' variable +- resources # resource files (external libraries only) | +- org | +- foo | +- bar.json # static helper data for org.foo.Bar
在本例中,我们就简单点吧,如下:
(test) +- vars | +- sayHello.groovy
二、我们将该脚本放入SVN(后面用于共享pipeline使用)
这里要注意的是,要把vars也放入
这里在你要放的svn路径下新建一个master文件夹,表示主线
三、jenkins配置Global Pipeline Libraries
如下图,就不解释了
注意,这里的master正好和之前放入svn时的保持一致,不然会找不到
四、使用
新建pipeline任务,在流水线中,加入如下代码
library 'my-shared-library'
sayHello()
执行,看看结果:
看看,执行成功!
这样任务再有改动,只要改动该脚本即可。
参考:
1、https://www.jenkins.io/zh/doc/book/pipeline/shared-libraries/
2、https://www.cnblogs.com/cay83/p/7811482.html