首頁 >web前端 >js教程 >Jenkins+Node.js的持續集成

Jenkins+Node.js的持續集成

php中世界最好的语言
php中世界最好的语言原創
2018-03-06 16:13:021634瀏覽

這次帶給大家Jenkins+Node.js的持續集成,Jenkins+Node.js持續集成的注意事項有哪些,下面就是實戰案例,一起來看一下。

首先我們要搞清楚什麼是持續整合(Continuous integration)

#提出者Martin Fowler本人對持續整合是這樣定義的:持續整合是一種軟體開發實踐,即團隊開發成員經常整合他們的工作,通常每個成員每天至少整合一次,也意味著每天可能會發生多次整合。每次整合都透過自動化的建置(包括編譯,發布,自動化測試)來驗證,從而盡快發現整合錯誤。許多團隊發現這個過程可以大幅減少整合的問題,讓團隊能夠更快的開發內聚的軟體。

隨著軟體開發複雜度的不斷提高,團隊開發成員間如何更好地協同工作以確保軟體開發的品質已經慢慢成為開發過程中不可迴避的問題。尤其是敏捷開發(Agile) 在軟體工程領域越來越紅火,如何能再不斷變化的需求中快速適應和保證軟體的品質也顯得尤其的重要。
持續整合正是針對這一類問題的一種軟體開發實踐。

持續整合的核心價值在於:

減少風險,減少重複流程

任何時間、任何地點產生可部署的軟體

增強專案的可見性

建立團隊對開發產品的信心

持續整合的原則

#所有的開發人員需要在本機上做本地構建,然後再提交的版本控制庫中,從而確保他們的變更不會導致持續整合失敗。

開發人員每天至少向版本控制庫中提交一次程式碼。

開發人員每天至少需要從版本控制庫更新一次程式碼到本機。

需要有專門的整合伺服器來執行整合建置,每天要執行多次建置。

每次建置都要100%通過。

每次建置都可以產生可發佈的產品。

修復失敗的建置是優先權最高的事情。

測試是未來,未來是測試

Jenkins

Jenkins 是一個開源項目,提供了一個易於使用的持續集成系統,使開發者從繁雜的集成中解脫出來,專注於更為重要的業務邏輯實現。同時 Jenkins 能實施監控整合中存在的錯誤,提供詳細的日誌檔案和提醒功能,也能以圖表的形式形象化地展現專案建構的趨勢與穩定性。

安裝

從Jenkins官網下載最新war檔案

運行java -jar jenkins.war

運行成功會在使用者個人目錄下新建.jenkins /資料夾
存取localhost:8080就能到達Jenkins首頁

系統管理>> 系統設定

這裡以QQ郵箱設定為例,根據自己的郵件提供者修改

設定有效URL和發送郵箱

注意SMTP伺服器是系統管理員郵件提供者的伺服器

安裝Git外掛程式

系統管理>> ; 插件管理>> 可選插件

查找Git plugin,勾選,直接安裝,重啟Jenkins

Jenkins提供了很多優秀的插件,這裡有一篇不錯的介紹Jenkins Job相關外掛程式的文章
如果你覺得已有的外掛程式無法滿足你的需求,可以自己開發(建議:淺析Jenkins外掛開發)

使用者與安全性

#系統管理> ;> 管理使用者

可新增與管理使用者

系統管理>> Configure Global Security(安全設定)

可配合安全矩陣管理使用者權限

DEMO

新建一個freestyle專案

設定原始碼,這裡以git為例,Credential可以設定帳號密碼、ssh
#https ://github.com/wuyanxin/jenkins_nodejs_test 是一份簡單範例程式碼,包含啟動失敗、啟動成功、測試失敗、和測試成功的範例

##建置觸發器我選擇的是
計時器模式,設定語法如crontab,可點選右側的問號檢視說明。 順便說說觸發遠端構建,可以透過遠端請求對應URL觸發,這個可以配合版本庫的hook使用,自動化測試新commit

構建#可通過四種方式構建,batch、shell、ant、maven,根據自己需求自行選擇。
我用shell, 可以增加多步驟構建,按順序執行

構建之後可打包、構建其他項目、發布測試報告、發布javadoc、git發布、郵件提醒
這裡就只談郵件提醒

郵件提醒

這樣我們就完成了持續整合環境的搭建,啟動失敗或測試失敗將會發送郵件通知。

相信看了這些案例你已經掌握了方法,更多精彩請關注php中文網其它相關文章!

相關閱讀:

html裡怎樣實現異步上傳檔案

#marquee元素如何實現滾動字體與圖片的效果

怎麼給span標記樣式設定width屬性

#

以上是Jenkins+Node.js的持續集成的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn