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