GitLab CI是開源的持續集成服務,GitLab Runner是一個開源項目,用於運做任務,並把結果發送回GitLab,它與GitLab CI一塊兒使用。git
持續(Continuous integration ,縮寫CI)是一種軟件工程流程,是將全部軟件工程師對於軟件的工做副本持續集成到共享主線(mainline)的一種舉措。該名稱最先由Grady Booch 在他的布區方法中提出,不過他並不支持在一天中進行數次集成。以後舉措成爲極限編程驅動開發(TDD)的做法中,一般還會搭配自動單元測試。持續集成的提出主要是爲解決軟件進行系統集成時面臨的各項問題。-維基百科
持續集成通常包括一些流程:docker
合併代碼
安裝依賴
編譯
測試
發佈
持續集成必須依靠如下原則:編程
持續集成能夠快速發現錯誤,定位錯誤也比較容易,它的目的就是讓產品能夠快速迭代,同時還能保證高質量。核心措施代碼集成到主幹前,必須經過自動化測試。gitlab
GitLab CI是爲GitLab提供持續集成服務的一整套系統。在GitLab8.0之後的版本是默認集成了GitLab-CI而且默認啓用的。
使用GitLab CI須要在倉庫跟目錄建立一個gitlab-ci.yml的文件,它用來指定持續集成須要運行的環境,以及要執行的腳本。還須要設置一個gitlab-runner,當有代碼push變動的時候,gitlab-runner會自動開始pipeline,並在gitlab上顯示持續集成的結果。單元測試
GitLab Runner是使用Go語言編寫的,能夠作爲一個二進制文件運行,不須要特定的語言要求,他建立了一個持續集成的的環境,所須要的程序使用Docker來安裝,配置好GitLab Runner運行的環境。GitLab Runner實際上都是docker container,由GitLab Runner來自動建立,運行的環境由GitLab Runner程序控制,使用docker來創建runner,使得每個虛擬環境都乾淨,輕量,相互隔離,互不影響。
GitLab-Runner通常都是配合GitLab-CI使用的,在GitLab裏面定義一個屬於這個工程的軟件集成腳本,用來自動化地完成一些軟件集成工做。
GitLab-Runner執行狀況以下:測試
gitlab-runner能夠在不一樣的主機上部署,也能夠在同一個主機上設置多個gitlab-runner ,還能夠根據不一樣的環境設置不一樣的環境,好比咱們須要區分研發環境,測試環境以及正式環境等。spa