什么是擴(kuò)展共享庫(kù)
在工作中,我們可能會(huì)有很多Maven項(xiàng)目的打包部署,還有Android、iOS等等的打包任務(wù),雖然項(xiàng)目不同,但是打包、部署等等流程有很多相似之處,擴(kuò)展庫(kù)共享庫(kù)允許我們抽象出很多公共部分,這樣后續(xù)在新項(xiàng)目配置Pipeline的時(shí)候,會(huì)非常簡(jiǎn)便
準(zhǔn)備
- Jenkins:安裝建議參考Jenkins安裝
- Gitlab:安裝建議參考Gitlab安裝
為了方便,我這里都選擇Docker安裝,請(qǐng)大家自行配置Gitlab和Jenkins相關(guān)參數(shù),比如Gitlab的SSH Key,Jenkins的憑證,這里不做贅述
擴(kuò)展共享庫(kù)配置
1.創(chuàng)建Gitlab Repo
-
如圖,我創(chuàng)建了名字是jenkins-shared-libraries的Git Repo
git-repo.png
2.目錄說(shuō)明
(root)
+- src # Groovy 源碼文件
| +- com
| +- michael
| +- Bar.groovy # for org.foo.Bar class,主要是類庫(kù)相關(guān)
+- vars # 變量和公共過(guò)程
| +- foo.groovy # 全局'foo'變量
| +- foo.txt # 'foo' 變量的幫助文檔
+- resources # 資源文件 (external libraries only)
| +- com
| +- michael
| +- bar.json # static helper data for com.michael.Bar
| +- bar.shell # shell scripts
| +- package.json # 主要是Git commit message 插件
| +- commitlint.config.js # 主要是Git commit message 插件
3.配置Jenkins擴(kuò)展共享庫(kù)
-
依次點(diǎn)擊 系統(tǒng)管理 > 系統(tǒng)配置,找到Global Pipeline Libraries,如下圖
jenkins-shared-lib.png
4.編寫Pipeline Demo
在git的jenkins-shared-libraries中的vars下面,新建log.groovy文件,并提交
def info(message) {
echo "INFO: ${message}"
}
def warning(message) {
echo "WARNING: ${message}"
}
def error(message) {
echo "ERROR: ${message}"
}
5.執(zhí)行
-
新建JOB
jenkins-create-job.png -
執(zhí)行JOB
在Pipeline中引用共享庫(kù),并使用log.info的方法
jenkins-pipeline.png -
執(zhí)行結(jié)果
jenkins-pipeline-result.png
PS:這里僅僅是最簡(jiǎn)單的Hello world的擴(kuò)展庫(kù)介紹,讓大家有個(gè)感性認(rèn)識(shí),后面的文章,會(huì)針對(duì)Maven、Npm這些常見的打包部署方式的項(xiàng)目,進(jìn)行Pipeline的擴(kuò)展共享庫(kù)的實(shí)踐介紹。
Reference
Jenkins安裝
Gitlab安裝
Jenkins Shared-Libraries