**1. 什么是持續集成**
持續集成( Continuous integration , 簡稱 CI )指的是:頻繁地(一天多次)將代碼集成到主干。
<br/>
持續集成的目的:<mark>就是讓產品可以快速迭代,同時還能保持高質量</mark>。
<br/>
持續集成的核心措施是:代碼集成到主干之前,必須通過自動化測試。只要有一個測試用例失敗,就不能集成。
<br/>
通過持續集成, 團隊可以快速的從一個功能到另一個功能,簡而言之,敏捷軟件開發很大一部分都要歸功于持續集成。
<br/>
**2. 持續集成的流程**
:-: 
持續集成的流程
(1)提交
開發者向代碼倉庫提交(commit)代碼。
(2) 測試(第一輪)
代碼倉庫對commit操作配置了鉤子(hook),只要提交代碼或者合并進主干,就會跑自動化測試。
(3)構建
通過第一輪測試,代碼就可以合并進主干,就算可以交付了。
<br/>
交付后,先進行構建(build),再進入第二輪測試。所謂構建,指的是將源碼轉換為可以運行的實際代碼,比如安裝依賴,配置各種資源(樣式表、JS腳本、圖片)等等。
(4)測試(第二輪)
構建完成,就要進行第二輪測試。如果第一輪已經涵蓋了所有測試內容,第二輪可以省略,當然,這時構建步驟也要移到第一輪測試前面。
(5)部署
過了第二輪測試,當前代碼就是一個可以直接部署的版本(artifact)。將這個版本的所有文件打包`(tar filename.tar * )`存檔,發到生產服務器。
(6) 回滾
一旦當前版本發生問題,就要回滾到上一個版本的構建結果。最簡單的做法就是修改一下符號鏈接,指向上一個版本的目錄。
<br/>
**3. 持續集成的組成要素**
* 一個自動構建過程, 從檢出代碼、 編譯構建、 運行測試、 結果記錄、 測試統計等都是自動完成的, 無需人工干預。
* 一個代碼存儲庫,即需要版本控制軟件來保障代碼的可維護性,同時作為構建過程的素材庫,一般使用SVN或Git。
* 一個持續集成服務器, Jenkins 就是一個配置簡單和使用方便的持續集成服務器。
:-: 
**4. 持續集成的好處**
1、降低風險,由于持續集成不斷去構建,編譯和測試,可以很早期發現問題,所以修復的代價就少。
2、對系統健康持續檢查,減少發布風險帶來的問題。
3、減少重復性工作。
4、持續部署,提供可部署單元包。
5、持續交付可供使用的版本。
6、增強團隊信心。
- 相關概念
- 軟件開發生命周期
- 軟件開發瀑布模型
- 軟件的敏捷開發
- 持續集成
- Jenkins介紹
- Jenkins是什么
- Jenkins的特征
- Jenkins環境搭建
- 搭建架構說明
- Gitlab安裝與配置
- Jenkins安裝與配置
- Tomcat安裝和配置
- Jenkins構建項目
- 自由風格軟件項目構建
- Maven項目構建
- Pipeline流水線項目構建
- Pipeline是什么
- Pipeline語法
- 流水線項目構建演示
- Pipeline Script from SCM
- 構建觸發器
- 觸發遠程構建
- 其他工程構建后觸發
- 定時構建
- 輪詢SCM
- Git hook自動觸發構建
- 參數化構建
- 配置郵箱發送構建結果
- SonarQube代碼審查平臺
- SonarQube是什么
- SonarQube平臺搭建
- 安裝jdk11
- 安裝數據庫PostgreSQL12
- 安裝SonarQube
- SonarQube實現代碼審查
- Jenkins+Docker+SpringCloud(1)
- 流程說明
- 環境搭建
- 服務器列表
- Docker安裝與配置
- Harbor安裝與配置
- Nginx安裝與配置
- 微服務持續集成演示
- Jenkins上配置
- 微服務項目配置
- 部署前端靜態web網站