CI(Continuous Integration)持續集成,CD(Continuous Delivery) 持續交付
為什么做CI
1、分支偏離主干
2、未知項目進度
3、發現bug較晚
4、定位問題復雜
CI價值
1.二進制包准備降低風險:靜態代碼分析,盡早發現bug
2.自動化:自動化編譯、自動化測試、自動部署、自動審查、自動反饋
3.隨時發布
重點
為了提高代碼質量已經每次發布到beta環境服務的穩定性,要提高自動化測試覆蓋率(不僅限於接口自動化測試)
CI系統流程
流程圖如下:
CI詳細流程圖如下
代碼提交流程
自測環境發布流程
1、當git lab上有代碼向dev_test分支發起merge請求,觸發自測環境的jenkins sonar掃描;
2、sonar掃描--針對dev_test分支;
3、單元測試--針對dev_test分支;
4、構建自測環境,並運行自測環境--針對dev_test分支;
5、執行接口自動化測試;
6、接口自動化測試通過后,在自測環境中進行功能測試、新增接口測試,並將新增測試點新增到自動化測試案例庫中。
Beta環境發布流程(分支:dev)
1、當git lab上有代碼向dev分支發起merge請求,觸發jenkins sonar掃描;
2、sonar掃描--針對dev分支
3、單元測試--針對dev分支
4、構建自測環境,並運行自測環境--針對dev分支
5、執行接口自動化測試;
6、接口自動化測試通過后,將測試通過的dev分支發布並部署到beta環境。
流程觸發機制
1、使用gitlab webhooks
2、URL處輸入構建的url地址,需增加token信息;
http://jenkins.cn/view/decision/job/decision-sonar/build
3、Secret Token 輸入jenkins中需由gitlab merge請求觸發的工程中配置身份令牌
觸發機制配置merge請求時觸發
4、提交merge請求,觸發流程
操作說明
1、新建jenkins項目
新建sonar掃描、單元測試、構建、自動化測試、beta環境構建五個項目。
2、配置meta data
3、新建pipeline視圖
4、設置CI初始項目名稱
5、CI初始項目設置依賴關系.注意:依賴關系一定要順序執行,避免形成環形依賴
6、設置預警聲音(可自定義聲音,音頻格式的文件為wav格式,並且將音頻文件打包好給葉柄添加到jenkins服務器上即可)
7、Sonar掃描項目配置
mvn clean org.jacoco:jacoco-maven-plugin:prepare-agent
mvn sonar:sonar
8、單元測試項目配置
-Dmaven.test.skip=false
9、自動化項目配置
http://jenkins.puhuitech.cn/view/decision/job/puhui-decision-autotest/
10、發送測試報告
1)、安裝jenkins插件,Editable Email Notification
2)、選擇構建后操作,Editable Email Notification;
3)、Project Recipient List:輸入收件人的郵箱地址,收件人之間使用逗號隔開;
4)、Default Subject:郵件主題
5)、Default Content:郵件內容自定義
預熱內容--使用Groovy腳本新建pipeline流程
1、新建一個項目類型為Pipeline的jenkins工程
2、配置groovy腳本
3、pipeline 模板腳本生成
4、pipeline進程查看
5、jenkins 2.0建自動化構建之pipeline語法: