DevOps微課系列旨在幫助用戶學(xué)習(xí)DevOps實踐。
業(yè)務(wù)背景
問題一:
現(xiàn)有CI上的構(gòu)建項目無法完成UT/FT/ST等測試及SM復(fù)雜度或Lizard圈復(fù)雜度檢查。
現(xiàn)有CI上的構(gòu)建項目只能對版本控制源代碼,而測試代碼、數(shù)據(jù)庫腳本、構(gòu)建和部署腳本、依賴的庫文件等,并且對構(gòu)建產(chǎn)物的版本控制也同樣重要,只有這些內(nèi)容都納入版本控制了,才能夠確保所有的開發(fā)、測試、運維活動能夠正常開展,系統(tǒng)能夠被完整的搭建。
普通pipeline無法對多個branch進行支持,無法對Gerrit trigger觸發(fā)的DailyCI、VerifyCI、MergeCI合并在同一個構(gòu)建項目中,導(dǎo)致pipeline流水線很多,管理復(fù)雜。
問題二:
現(xiàn)有的版本發(fā)布是將版本編譯目標文件打包上傳制品庫,在環(huán)境部署過程中需要提前配置主機環(huán)境,如果環(huán)境較為復(fù)雜和繁瑣,給環(huán)境配置帶來不小的困難。采用docker方式打包環(huán)境和版本利于測試部署和現(xiàn)網(wǎng)部署。
解決思路
1.通過multibranch類型的pipeline job使得對于多個branch的支持更加簡單。
只需要創(chuàng)建一個multibranch job,jenkins將自動地為所有的branch創(chuàng)建job。
2.構(gòu)建docker環(huán)境并打包編譯版本到鏡像中,將鏡像pull到制品庫。
實踐情況
解決方案中我們明確了gerrit上代碼分支管理策略,對不同的分支版本采用不同的分支策略,在實踐中我們將展示我們的三種代碼分支策略。
1.代碼分支策略1——開發(fā)分支與發(fā)布分支
2.代碼分支策略2——特性分支(臨時分支)
3.代碼分支策略3——修復(fù)Bug分支
解決方案
解決方案中我們還詳細闡述了我們的CI創(chuàng)建,包括Multibranch Pipeline創(chuàng)建,Jenkinsfile的撰寫、存放及調(diào)用,完整效果預(yù)覽。
1.新建multibranch pipeline job
2. 每個分支代碼的根目錄下存放Jenkinsfile,撰寫jekinsfile腳本
腳本分如下幾個部分:
1) Jekinsfile中添加接收gerrit 觸發(fā)事件的Properties
配置成功后在Branches中查看配置,會看到自動生成的配置觸發(fā)頁面為
2)獲取verifyCI需要的gerrit上change分支
3) 腳本處理不同的gerrit上的branch分支
4) 腳本處理不同的gerrit觸發(fā)事件
3.自動為每個branch生成job
在multibranch pipeline job保存后,jenkins自動地檢查所有的branch,且自動地為所有的branch創(chuàng)建job,當(dāng)然前提是存在jenkinsfile文件。例如上面的job,自動地生成了文件夾*-AI-*-RUNNTIME,且在此文件夾下自動地為trunk和branch生成了job。如果在代碼庫上某個branch分支被刪除,multibranch pipeline也會自動檢測變化并刪除相應(yīng)的job。
4.Scan Multibranch Pipeline Now第一次生成Multibranch Pipeline時,會自動掃描pipeline配置文件并建立相應(yīng)的job,后續(xù)如果jenkinsfile文件有變更,也可以手動觸發(fā)掃描,日志輸出如下
5.這樣建立完成一個完整的MultiBranch Pipeline
不同任務(wù)運行效果圖如下所示,在同一個pipeline中可見并管理不同的gerrit觸發(fā)任務(wù),比如patchset-created、change-merged和daily_ci。
6.Gtest+lconv代碼單元測試及覆蓋率檢查
輸出gtest單元測試及l(fā)cov代碼覆蓋率檢測結(jié)果
7.Docker鏡像通過制品庫發(fā)布
-
代碼
+關(guān)注
關(guān)注
30文章
4723瀏覽量
68240 -
Docker
+關(guān)注
關(guān)注
0文章
453瀏覽量
11792
原文標題:DevOps案例 | 基于Multibranch Pipeline+docker+gtest+lcov等集成代碼檢查構(gòu)建發(fā)布實踐
文章出處:【微信號:ZTEdeveloper,微信公眾號:中興開發(fā)者社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論