公司目前的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