使用Jenkins搭建持續集成環境
準備工作
- 安裝JDK (具體安裝流程這裏不進行展開討論)
- 從Jenkins官方網站https://jenkins.io下載最新的war包。(雖然Jenkins提供了Windows、Linux、OS X等平臺的安裝包,但是,牆裂推薦使用war包)
安裝Jenkins
當我們準備工作完成時,我們就可以開始我們的啓動工作了。
首先,我們在終端cd到我們存放jenkins.war文件的目錄下,運行下面的命令
java -jar jenkins.war
這時Jenkins就啓動成功了!--jenkins.war文件中自帶了Jetty服務器,所以剩下的工作我們就可以在瀏覽器中接着開展了。
第一次啓動Jenkins時,處於安全考慮,Jenkins會自動生成一個隨機的安裝口令。這個口令被輸出到Java控制檯,我們需要將這個口令複製並紀錄下來.
接着打開瀏覽器輸入
我們將會看見類似下面的界面,然後將我們保存的口令輸入到(粘貼)對應的輸入框內。
然後點擊繼續,直接我們將來到安裝界面
如果執行默認的安裝,Jenkins就自動配置好了Maven、git等常用插件。(安裝過程中,可能需要自備梯子)
新手推薦使用Jenkins的默認安裝,高階玩家請自行選擇。
然後靜靜地等待安裝完成,安裝完成後,Jenkins會提示你創建一個賬戶,當然也可以使用其默認創建的admin用戶。
輸入用戶名密碼之後,點擊確認創建。然後你將看到
點擊start,進入如下界面,說明你安裝成功了
開始構建第一個項目
在安裝成功後,我們登錄Jenkins
第一次使用前,需要在“系統管理”->“Global Tool Configuration”->“Maven”中新增一個Maven,直接輸入一個名字,選中“自動安裝”,Jenkins會自動下載並安裝Maven(如果項目不是Maven管理的就不需要哈):
點擊save按鈕,接下來我們在Jenkins首頁選擇“新建”,輸入名字,選擇“構建一個多配置項目”:
接着在配置頁中,源碼管理選擇Git,填入地址,
默認使用master分支。如果需要口令,在Credentials中添加用戶名/口令,或者使用SSH Key。
接着配置構建的觸發條件,構建觸發器指定了觸發一次構建的條件。
推薦使用最簡單的配置“Poll SCM”,它的意思是,定時檢查版本庫,發現有新的提交就觸發構建。
這種方式對git、SVN等所有版本管理系統都是通用的。
我們在日程表中填入:
* * * *
表示每一分鐘檢查一次,當然我們也可以自定義別的,例如,我們想要每15分鐘檢查一次
# every fifteen minutes (perhaps at :07, :22, :37, :52)
H/15 * * * *
# every ten minutes in the first half of every hour (three times, perhaps at :04, :14, :24)
H(0-29)/10 * * * *
# once every two hours at 45 minutes past the hour starting at 9:45 AM and finishing at 3:45 PM every weekday.
45 9-16/2 * * 1-5
# once in every two hours slot between 9 AM and 5 PM every weekday (perhaps at 10:38 AM, 12:38 PM, 2:38 PM, 4:38 PM)
H H(9-16)/2 * * 1-5
# once a day on the 1st and 15th of every month except December
H H 1,15 1-11 *
在“Build”中,如果我們使用的是Maven項目,默認的Root POM是pom.xml。如果pom.xml不在根目錄下,就填入子目錄,例如:src/pom.xml。
在Goals and options中,填入需要執行的mvn命令:clean package,Jenkins將執行如下命令:
mvn clean package
特殊參數也在這裏填寫,如-DskipTests=true clean package。
保存後,就可以執行自動化構建了。
點擊一個構建任務,可以在Console Output中看到控制檯詳細輸出,便於出錯排查.
如何部署
如果要部署構建好的war包,可以在Post Steps中填上shell命令,直接用腳本部署。
另一種方式是創建另外一個構建項目,手動觸發部署。
無論用哪種方式,都是爲了確保編譯、部署是通過CI服務器完成的,而不是某臺開發機器。
如何創建Linux服務
有了Jenkins,我們就可以在內網或者租用一臺EC2服務器來搭建CI環境,每月費用不到¥100。
推薦Ubuntu Linux系統。因爲我們不想每次登錄到Linux去啓動Jenkins,也不想寫腳本來啓動服務。
推薦安裝JDK後,配合supervisor,把Jenkins直接變成一個服務。
例如,我們可以在Linux上創建一個針對性的ci用戶,然後,用supervisor啓動並指定9001端口:
# /etc/supervisor/conf.d/ci.conf
[program:ci]
command=java -jar /home/ci/jenkins.war --httpPort=9001
user=ci
autostart=true
autorestart=true
startsecs=30
startretries=5
Jenkins默認在當前用戶的主目錄下創建.jenkins目錄,所有的配置文件、數據庫都存放在裏面,只需要備份這個目錄就備份了整個CI配置。
OK,一個CI環境就搭建完畢。