使用Jenkins擴(kuò)展共享庫(kù)進(jìn)行釘釘消息推送
起因:執(zhí)行完流水線后進(jìn)行一定程度的消息推送,所以選擇釘釘進(jìn)行jenkins
構(gòu)建結(jié)構(gòu)的消息推送
下載配置相關(guān)依賴插件
相關(guān)環(huán)境:
-
Jenkins
?2.277.3,安裝文檔見(jiàn)上篇 -
DingTalk
?插件 2.4.3 -
build user vars plugin
?插件 1.7
-
在Jenkins中安裝釘釘插件DingTalk :warning: 請(qǐng)確保你的 Jenkins 版本 >= 2.176.4
釘釘機(jī)器人配置,說(shuō)明文檔
找到 Jenkins 首頁(yè) >> 系統(tǒng)管理 >> 釘釘,我的配置如下圖
:warning: 注意手動(dòng)輸入機(jī)器人的id,不要自動(dòng)生成,否則重啟后,robot的id將發(fā)生變化
在流水線中,使用wrap,獲取BUILD_USER變量
創(chuàng)建配置共享庫(kù)
編寫Groovy腳本
項(xiàng)目目錄結(jié)構(gòu)如下:
dingme.groovy
文件內(nèi)容如下
文本中
xxxxxxxxxxx
請(qǐng)根據(jù)實(shí)際情況更換為釘釘群組里面,具體人的手機(jī)號(hào),可以添加多個(gè)
在 Jenkins 中配置將共享庫(kù)
找到 Jenkins 首頁(yè) >> 系統(tǒng)管理 >> Global Pipeline Libraries,我的配置如下圖
在流水線中導(dǎo)入共享庫(kù)
導(dǎo)入方法@Library('pipeline-library-demo')_
,這樣就可以使用共享庫(kù)中的代碼了
具體的 pipeline 腳本如下:
至此完成,構(gòu)建效果如下圖:
遇到的問(wèn)題
-
currentBuild.durationString
的值傳遞不進(jìn)去,一開始先用withEnv
包裹一下
后來(lái)找到原因 Groovy 在單引號(hào)的字符串里面是不支持插值的,所以要用雙引號(hào)
單引號(hào)中的env.JOB_NAME
會(huì)引用失敗,雙引號(hào)則引用成功
單、雙引號(hào)引用JOB_NAME
都引用成功
推薦所有變量都用""雙引號(hào)
三引號(hào)也是一樣,''' 三單引號(hào)不支持插值,"""三雙引號(hào)支持插值
參考鏈接:https://www.ssgeek.com/post/jenkinssharelibrary-shi-jian-zhi-zi-ding-yi-tong-zhi-qi/