Jenkins 簡介
1、文字簡介
jenkins是一個廣泛用於持續構建的可視化web工具,持續構建說得更直白點,就是各種項目的"自動化"編譯、打包、分發部署。jenkins可以很好的支持各種語言(比如:JavaScript、java, c#, php等)的項目構建,也完全兼容grunt、ant、maven、gradle等多種第三方構建工具,同時跟svn、git能無縫集成,也支持直接與知名源代碼托管網站,比如github、bitbucket直接集成。
jenkins官網地址為http://jenkins-ci.org/,jenkins本身是用java語言開發的,所以安裝jenkins的機器至少要有jdk,另外建議git、ant、maven、gradle、groovy等工具也一並安裝好,方便與這些構建工具集成。
2、工作流程圖
從圖片上看,其實Jenkins就是一個將以前人工打包、上傳、發布操作通過各種插件等集成到可視化的web頁面上一個工具。
2.1 從git等倉庫中拉取代碼(拉取后的代碼可以在Jenkins的工作空間中找到)
2.2 Jenkins調用第三方插件 如Shell 運行指定命令
2.3 調用服務器上已經安裝的打包插件如grunt將代碼打包。
2.4 使用SSH命令將打包好的代碼上傳到發布服務器上
2.5 使用SSH命令將上傳好的代碼發布到代碼服務器
Jenkins 安裝和啟動
1、 Jenkins 安裝
具體安裝可以參照博文: http://www.imooc.com/article/11895
2、Jenkins啟動 (電腦必須裝有java的sdk)
到下載文件目錄下,運行 java -jar ./jenkins.war --httpPort=9090
運行命令成功后可以在瀏覽器下用 127.0.0.1:9090 訪問,
--httpPort=9090 指定的是訪問端口。
Jenkins添加項目和具體配置
安裝好后使用 http://192.168.0.66:9090 訪問界面, 192.168.0.66 是我的本機地址,9090 是我啟動Jenkins時使用的端口。
1、安裝插件
Jenkins的很多功能都需要依賴於現有的插件,比如git倉庫下代碼拉取、SSH命令的運行。Jenkins第一次啟動的時候會推薦你安裝默認的插件,建議將推薦的插件都安裝。
下面我以安裝Multiple SCMs Plugin 這個插件為例, Multiple SCMs Plugin 這個插件可以讓你的項目拉取多個倉庫代碼。 比如你的發布項目需要將多個倉庫下代碼進行打包。
安裝截圖:
安裝成功截圖:
2、 Jenkins具體配置
還是先從截圖看具體的配置界面然后一一解析具體功能
2.1 General 通用配置,可以添加項目名稱、項目描述。和構建過程中使用的參數。
參數化構建過程這個選項比較重要,它主要是讓你可以根據自己的配置參數,去拉取指定分支代碼或者運行不同的shell腳本來達到比如發布到不同的服務器上的邏輯,打包邏輯化。
2.2 源代碼管理
配置git倉庫地址。
${branch_project} 指定的就是你從倉庫中拉取指定分支的代碼,這個可以在前面的構建化使用參數中配置。
Mutiple SCMs 是Jenkins的一個插件,主要解決一次發布需要拉取多個倉庫代碼,比如你想從拉取A項目並且在A項目的子文件夾asset/src/h5中拉取B項目的代碼放於文件夾asset/src/h5中。就要使用這個插件。
而Additional Behaviours 項的配置是解決拉取兩個項目同時,B項目必須放到到A項目的asset/src/h5中。
2.3 構建觸發器
根據你自己的情況去選擇,比如你可以配置當git每次提交時就去打包。
2.4 構建環境
根據你自己的情況去選擇,比如是否配置每次build時去清空工作空間。
2.5 構建
增加構建步驟添加你的具體操作,一般是選擇運行shell 腳本, 我是使用的grunt命令打包的所以我的shell 腳本中會有grunt 的相關命令, 具體shell腳本需要根據你的業務去擴展。
export PATH=/usr/local/bin:/path/to/node:/path/to/node_bin:/path/to/phantomjs:/path/to/jscoverage:$PATH;
加上這段shell腳本是配置mac機上的Path路徑的,有時候你運行shell腳本時會報找不到相應命令時加上這段估計能解決你的問題。
2.6 構建后步驟
當你的構建成功后你有時你需要把打包生成的zip包保留並且提供下載
點擊保存之后一個構建項目已經創建成功。
如何構建項目
點擊右側時鍾一樣的圖標,填寫你需要構建的參數。
查看構建時的日志,當success時你的一次構建就算完成。
成功后可以查看存檔文件