GitLab CI持續集成-GitLab Runner

GitLab CI是開源的持續集成服務,GitLab Runner是一個開源項目,用於運做任務,並把結果發送回GitLab,它與GitLab CI一塊兒使用。git

持續集成

持續(Continuous integration ,縮寫CI)是一種軟件工程流程,是將全部軟件工程師對於軟件的工做副本持續集成到共享主線(mainline)的一種舉措。該名稱最先由Grady Booch 在他的布區方法中提出,不過他並不支持在一天中進行數次集成。以後舉措成爲極限編程驅動開發(TDD)的做法中,一般還會搭配自動單元測試。持續集成的提出主要是爲解決軟件進行系統集成時面臨的各項問題。-維基百科

持續集成通常包括一些流程:docker

合併代碼
安裝依賴
編譯
測試
發佈

持續集成必須依靠如下原則:編程

  • 維護一個代碼知識庫
  • 自動構建,經過一個單一指令來達成系統建構
  • 一旦代碼更改好,下一個階段應該要進行全部的測試,以確保軟件開發的成果匹配預期
  • 減小衝突,一天至少提交一次
  • 每次變動必需要快速完成,如此一來即可以免集成問題
  • 儘量的縮小測試環境和正式環境的差距,服務虛擬化一般更容易實現這個目標
  • 儘早集成
  • 任何人均可以查看最後的建構的結果
  • 自動部署

持續集成能夠快速發現錯誤,定位錯誤也比較容易,它的目的就是讓產品能夠快速迭代,同時還能保證高質量。核心措施代碼集成到主幹前,必須經過自動化測試。gitlab

GitLab CI

GitLab CI流程

GitLab CI是爲GitLab提供持續集成服務的一整套系統。在GitLab8.0之後的版本是默認集成了GitLab-CI而且默認啓用的。
使用GitLab CI須要在倉庫跟目錄建立一個gitlab-ci.yml的文件,它用來指定持續集成須要運行的環境,以及要執行的腳本。還須要設置一個gitlab-runner,當有代碼push變動的時候,gitlab-runner會自動開始pipeline,並在gitlab上顯示持續集成的結果。單元測試

GitLab Runner

GitLab Runner是使用Go語言編寫的,能夠作爲一個二進制文件運行,不須要特定的語言要求,他建立了一個持續集成的的環境,所須要的程序使用Docker來安裝,配置好GitLab Runner運行的環境。GitLab Runner實際上都是docker container,由GitLab Runner來自動建立,運行的環境由GitLab Runner程序控制,使用docker來創建runner,使得每個虛擬環境都乾淨,輕量,相互隔離,互不影響。
GitLab-Runner通常都是配合GitLab-CI使用的,在GitLab裏面定義一個屬於這個工程的軟件集成腳本,用來自動化地完成一些軟件集成工做。
GitLab-Runner執行狀況以下:
執行時序圖測試

  1. 本地代碼改動
  2. 變更代碼推送到GitLab上
  3. GitLab 將這個變更通知GitLab-CI
  4. GitLab-CI找出這個工程相關聯的gitlab-runner
  5. gitlab-runner把代碼更新到本地
  6. 根據預設置的條件配置好環境
  7. 根據預約義的腳本(通常是.gitlab-ci.yml)執行
  8. 把執行結果通知給GitLab
  9. GitLab顯示最終執行的結果

gitlab-runner能夠在不一樣的主機上部署,也能夠在同一個主機上設置多個gitlab-runner ,還能夠根據不一樣的環境設置不一樣的環境,好比咱們須要區分研發環境,測試環境以及正式環境等。spa

相關文章
相關標籤/搜索