Jenkins是什么
Jenkins是一個開源的、提供友好操作界面的持續集成(CI)工具,起源于Hudson(Hudson是商用的),主要用于持續、自動的構建/測試軟件項目、監控外部任務的運行(這個比較抽象,暫且寫上,不做解釋)。Jenkins用Java語言編寫,可在Tomcat等流行的servlet容器中運行,也可獨立運行。
通常與版本管理工具(SCM)、構建工具結合使用;常用的版本控制工具有SVN、GIT,構建工具有Maven、Ant、Gradle。
Jenkins特性
易于安裝
不需要安裝、不需要數據庫,只需通過java -jar jenkins.war或部署到一個servlet容器中
易于配置
所有的配置都可能通過jenkins提供的web界面完成,當然如果你喜歡,也可以通過手動修改xml文件進行配置
生成JUnit或TestNG的測試報告
文件識別
jenkins能跟蹤每次構建生成哪些jar包以及使用哪個版本的jar包
分布式構建
插件支持
jenkins可以通過第三方插件擴展,也可以根據團隊需要開發插件
Jenkins中的任務(Job)和構建(build)
任務(Job)是Jenkins的一個執行計劃,是一系列操作的集合,構建是Jenkins的任務的一次運行。
名詞
CI
英文全稱:Continuous Integration
中文全稱:持續集成工具
持續集成是一種軟件開發實踐。在持續集成中,團隊成員頻繁集成他們的工作成果,一般每人每天至少集成一次,也可以多次。每次集成會經過自動構建(包括自動測試)的檢驗,以盡快發現集成錯誤。
SCM
英文全稱:Source Control Management (Software Version Control)
中文全稱:源碼控制管理軟件 版本控制
Jenkins自動編譯部署web應用
初步接觸持續集成自動化過程,本篇主要介紹基于Jenkins實現持續集成的方式,通過案例介紹線上自動編譯及部署的配置過程
持續集成
持續集成是一種軟件開發實踐,即團隊開發成員經常集成它們的工作,通過每個成員每天至少集成一次,也就意味著每天可能會發生多次集成。每次集成都通過自動化的構建(包括編譯,發布,自動化測試)來驗證,從而盡早地發現集成錯誤。
Jenkins
Jenkins是基于Java開發的一種持續集成工具,用于監控持續重復的工作,功能包括:
1、持續的軟件版本發布/測試項目。
2、監控外部調用執行的工作。
更多信息請戳官網
安裝
網上有很多Jenkins安裝配置教程,詳情請戳Jenkins安裝與配置
開始一個DEMO
背景
Jenkins運行在Linux服務器上,嘗試在此服務器上編譯并部署一個web應用,編譯過程需要node環境,編譯后文件需ssh到測試服務器
Jenkins主要完成任務如下:
1、自動集成編譯環境
2、線上編譯應用
3、ssh到目標環境并運行
新建一個Job
登錄進入Jenkins,可以看到當前所有已集成項目的構建情況;
1、點擊左上角的【新建】,創建一個新任務
2、填寫任務名稱,構建的項目類型可根據實際情況進行選擇,本次選擇第一種即可
3、選擇完畢,點擊【OK】,回到首頁,發現創建的Job已顯示在列表中
配置編譯環境
在這個過程中,我們需要為應用配置基于node的編譯環境。
關于安裝node,一般可以下載執行文件安裝或編譯源碼安裝,而通過Jenkins,我們則可考慮使用其提供的插件進行自動安裝
1、選擇系統管理-》管理插件
2、可以看到,Jenkins提供了豐富的插件供開發者使用,找到我們需要的[NodeJS Plugin],勾選后點擊安裝即可
3、安裝完畢后,選擇系統管理-》Global Tool Configuration,配置node下載及安裝
4、進入后,擼到底部,發現全局可用工具中已經出現了NodeJS的配置項
5、插件支持多種方式安裝nodeJS,點擊[新建安裝],選擇習慣的安裝方式即可,此處給出從node官網下載并安裝的配置
6、保存完畢后,通過列表,進入剛剛新建的Job,找到【構建環境】,勾選Provide Node & npm bin/ folder to PATH,選擇剛剛添加的配置即可;此后當每次build,都會首先執行環境構建,環境構建無誤后,才會開始真正的構建過程
配置構建過程
在這個過程中,我們可以配置構建所需的參數,用來指明構建的位置(從哪個分支/哪個版本。。.)或其他一些狀態;并通過命令執行構建。
1、通過列表進入Job詳情,開始相關配置;
2、【General】一欄需要配置項目基礎信息和一些構建需要的參數。選擇【參數化構建】,此構建方式允許我們自定義構建過程中的參數。如下:配置一個branch參數,用于指明要構建的git分支
3、【源碼管理】一欄需要填寫待構建項目的源碼地址,其中【Branches to build】用來指明待構建的分支,當然,也可以選擇某個提交號,同時此處也可以使用我們在General中定義變量(詳細配置見輸入框右側的[幫助]按鈕)
4、【構建】一欄需要輸入相關命令來實現自動化構建,此過程在【環境構建】后,故我們可以編寫如下代碼執行構建
5、線上編譯完畢,下面將build完成的文件發送至目標環境(測試環境/生產環境)。繼續在【構建】一欄中添加配置,指定目標環境相關信息;命令行配置ssh后的一些操作(解壓文件,并刪除壓縮包)
執行構建
至此,整個構建的配置算是基本完成,下面開始構建。
回到列表頁,點擊構建即可:
可以看到構建歷史列表中顯示當前構建的進度
點擊左側圓形按鈕,即可進入控制臺查看輸出
構建完畢后,可以通過列表中的晴雨狀態查看構建結果
結語
本篇簡單介紹了基于Jenkins構建的過程,Jenkins功能還有很多,會在之后的篇幅中陸續介紹。隨著項目開發規模和復雜度不斷增大,持續集成是一個必然的選擇。
評論
查看更多