持續集成是什么?

發表于:2017-04-24來源:juejin作者:Surmon點擊數: 標簽:持續集成
持續集成是一種軟件開發實踐,即團隊開發成員經常集成它們的工作代碼,每個成員每天至少集成一次,也可能會發生多次集成。每次集成都通過自動化的構建(包括編譯,發布,自動

互聯網軟件的開發,已經成熟、標準化,其中最重要的組成部分就是持續集成(Continuous integration,簡稱CI)。

持續集成是一種軟件開發實踐,即團隊開發成員經常集成它們的工作代碼,每個成員每天至少集成一次,也可能會發生多次集成。每次集成都通過自動化的構建(包括編譯,發布,自動化測試)來驗證,從而盡早地發現集成BUG,并解決。

簡單說就是:

頻繁地提交代碼,集成進主干分支,及早發現問題,并解決。

舉個例子:

  1. 公司某項目在代碼倉庫存在三個分支:dev(開發分支)、master(主干分支)、release(預發布分支)
  2. 開發組有兩個以上的人員在分別開發A、B、C...等不同的功能模塊
  3. 每個開發人員完成自身某個功能模塊的開發后,需要將本地檢驗合格的代碼push到dev分支,
  4. 代碼倉庫配置的webhooks會根據commit動作回調測試服務器,測試服務器對提交的代碼進行單元測試
  5. 單元測試通過,則集成進主干分支;不通過則不集成,并通知生成方完善處理
  6. 集成進主干分支后,主干分支進行編譯、構建(主要包含環境配置、安裝依賴、資源整理)
  7. 構建完成,進行集成測試(整體測試 [, 端對端測試]),測試通過則將主干分支合并至預發布分支(release)
  8. 合并至預發布分支后,預發布分支根據實際需求選擇是否直接實施部署
  9. 如果部署,則部署服務器則會將最新預發布分支的代碼,打包為當前版本,并推送至生產服務器
  10. 生產服務器解壓最新代碼包至指定目錄,修改程序的路徑指向最新代碼目錄,并重載生產服務
  11. 如若出現異常,生產服務器則直接將程序路徑指向上一個版本的目錄,進行回滾

如上所述,一個完整的持續集成流程至少需要包含: 測試服務 、 部署服務 、 生產服務 三部分;

單元測試、集成測試、功能測試這些自動化測試方法,是項目持續部署的基礎,大部分測試都應該是自動化完成的,自動化測試覆蓋不到的,應由人工測試;

原文轉自:https://juejin.im/post/58f9ee860ce46300611be392

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97