持續整合工具 Jenkins 看這篇就夠啦
本文基於當前最新的 LTS
版本 2.164.1
,理論上適應於Jenkins 2.x所有版本。
一、下載
前往 Jenkins官網 [1] ,按需下載。如用於生產,建議下載 Long-term Support (LTS)
版本,這樣能夠獲得相對長期的維護;如想體驗最新的功能,可嘗試 Weekly
版本。
可以直接下載特定系統專屬的版本,也可下載 Generic Java package (.war)
。本文下載的是 Generic Java package (.war)
,這樣對所有系統都通用。
二、安裝
2.1 通用安裝方式
安裝Jenkins非常簡單,只需準備一個Tomcat(筆者使用的是Tomcat 8),然後將下載下來的 jenkins.war
丟到Tomcat的 webapps
目錄中,然後啟動Tomcat即可。本文,Tomcat使用的埠是 18080
。
Tomcat下載與安裝本文不做贅述,請自行百度。
2.2 Docker安裝方式
使用如下命令即可:
docker run -d -v jenkins_home:/var/jenkins_home -p 18080:8080 -p 50000:50000 jenkins/jenkins:lts
2.3 初始化
Jenkins啟動片刻後,訪問 http://localhost:18080/jenkins
,即可看到類似如下的介面:
由介面提示可知,Jenkins設定了一個初始的管理員密碼,該密碼儲存在 /Users/itmuch.com/.jenkins/secrets/initialAdminPassword
檔案中——只需可找到該檔案,將其內容複製到圖示的輸入框中即可。點選 繼續
按鈕,將會出現類似如下的介面:
按需選擇即可,建議初學者選擇 安裝推薦的外掛
,因為該選項包含了Jenkins常用的一些外掛,基本滿足日常使用;高手則可選擇 選擇外掛來安裝
,該選項更具靈活性。這裡,筆者以 安裝推薦的外掛
為例,點選後,將會看到類似如下的介面:
待外掛安裝完畢後(等待的時間長短視您的網路而定),將會看到類似如下的介面:
Jenkins要求我們建立第一個管理員賬戶。填入相關資訊,並點選 儲存並完成
按鈕,Jenkins即可初始化完成。
TIPS
安裝完成後,如果訪問 http://localhost:18080/jenkins
變成白板,而且沒有反應,建議重啟Jenkins伺服器,並重新訪問嘗試。
三、配置
下面,我們來配置Jenkins。
3.1 全域性工具配置
1 點選 系統管理
- 全域性工具配置
,如下圖:
2 將會看到類似如下圖的介面。按需新增 JDK 、 Git 、 Gradle 、 Maven 、 Docker 等配置。配置比較簡單,這裡就不贅述了。
3.2 郵件配置
1 點選 系統管理
- 系統設定
2 配置管理員郵件地址:
3 郵件傳送配置:
需要注意的是:郵件通知所使用的地址必須與管理員郵箱地址一致,否則將無法正常傳送郵件!!
當然,Jenkins還有很多其他的配置選項,讀者可自行在Jenkins 左側的系統管理 自行挖掘 。
四、使用案例1:構建專案
1 在Jenkins首頁,點選 開始建立一個新任務.
,如下圖所示:
2 建立一個自由風格的專案,如下圖所示:
3 點選確定後,將會看到配置詳情:
如圖,請設定您想構建的專案的Git倉庫地址、對應的賬號密碼、想要構建的Git分支。一般來說,原始碼庫瀏覽器選擇自動即可。
4 Maven配置
其中 Maven版本
中所選擇的 maven
,就是之前在 全域性工具配置
一節中的Maven配置名稱。
5 如果想設定定時構建(例如:每天晚上八點構建):
6 配置構建完成後操作(以傳送郵件為例)
7 點選構建專案,執行構建
五、使用案例2:流水線
Jenkins 2.x
內建了強大的流水線功能。
1 建立一個 流水線
型別的任務
2 填寫Pipeline指令碼:
node {def mvnHome
stage('Preparation') { // for display purposes
// clone原始碼
git 'https://gitee.com/itmuch/spring-cloud-yes.git'
// 這裡的maven-3.5.0必須跟全域性工具配置中設定的Maven名稱一致
mvnHome = tool 'maven-3.5.0'
}
stage('Build') {
// Run the maven build
if (isUnix()) {
sh "'${mvnHome}/bin/mvn' clean install"
} else {
bat(/"${mvnHome}\bin\mvn" clean install/)
}
}
stage('Email') {
mail bcc: '', body: '構建成功。', cc: '[email protected]', from: '[email protected]', replyTo: '', subject: '構建成功', to: '[email protected]'
}
}
如程式碼所示,我們編寫了一個流水線,該流水線包含三個階段:
• Preparation:在該階段中,我們Clone原始碼,同時,定義了一個變數叫mvnHome。 • Build:在該階段中,我們執行 mvn clean install
命令,其中針對作業系統做了判斷。 • Email:如果構建成功,就傳送郵件到 511932633 @ qq.com
。
3 Pipeline指令碼功能非常強大,預設支援數十個指令!你可能擔心指令學習的成本,但這種擔心其實是多餘的——只需點選下圖中的 流水線語法
按鈕, 就可以傻瓜化地使用Pipeline語法啦 !
近期熱文
乾貨分享
最近將個人學習筆記整理成冊,使用PDF分享。關注我,回覆如下程式碼,即可獲得百度盤地址,無套路領取!
• 001:《Java併發與高併發解決方案》學習筆記; • 002:《深入JVM核心——原理、診斷與優化》學習筆記; • 003:《Java面試寶典》 • 004:《Docker開源書》 • 005:《Kubernetes開源書》
您的關注是對我最大的支援!
References
[1]
Jenkins官網: https://jenkins.io/download/