GitLab CI/CD簡介
GitLab 內置持續集成功能
持續集成 (CI)
- 集成團隊中每個開發人員提交的代碼到代碼存儲庫中。
- 開發人員在Merge或者Pull請求中合併拉取新代碼。
- 在提交或者合併更改到代碼存儲庫之前,會觸發了構建,測試和新代碼驗證的管道。
- CI可幫助您在開發週期的早期發現並減少錯誤
連續交付 (CD)
- 可通過結構化的部署管道確保將經過CI驗證的代碼交付給您的應用程序。
- CD可以將經過驗證的代碼更快地移至您的應用程序。
CI/CD 一起 可以加快團隊爲客戶和利益相關者交付成果的速度。CI和CD必須無縫協作,以使您的團隊快速有效地進行構建,並且對於確保完全優化的開發實踐至關重要。
GitLab CI/CD優勢
-
開源: CI/CD是開源GitLab社區版和專有GitLab企業版的一部分。
-
易於學習: 具有詳細的入門文檔。
-
無縫集成: GitLab CI / CD是GitLab的一部分,支持從計劃到部署,具有出色的用戶體驗。
-
可擴展: 測試可以在單獨的計算機上分佈式運行,可以根據需要添加任意數量的計算機。
-
更快的結果: 每個構建可以拆分爲多個作業,這些作業可以在多臺計算機上並行運行。
-
針對交付進行了優化: 多個階段,手動部署, 環境 和 變量。
GitLab CI/CD特點
- 多平臺: Unix,Windows,macOS和任何其他支持Go的平臺上執行構建。
- 多語言: 構建腳本是命令行驅動的,並且可以與Java,PHP,Ruby,C和任何其他語言一起使用。
- 穩定構建: 構建在與GitLab不同的機器上運行。
- 並行構建: GitLab CI / CD在多臺機器上拆分構建,以實現快速執行。
- 實時日誌記錄: 合併請求中的鏈接將您帶到動態更新的當前構建日誌。
-
靈活的管道: 您可以在每個階段定義多個並行作業,並且可以 觸發其他構建。
-
版本管道: 一個 .gitlab-ci.yml文件 包含您的測試,整個過程的步驟,使每個人都能貢獻更改,並確保每個分支獲得所需的管道。
-
自動縮放: 您可以 自動縮放構建機器,以確保立即處理您的構建並將成本降至最低。
-
構建工件: 您可以將二進制文件和其他構建工件上載到 GitLab並瀏覽和下載它們。
-
Docker支持: 可以使用自定義Docker映像, 作爲測試的一部分啓動 服務, 構建新的Docker映像,甚至可以在Kubernetes上運行。
-
容器註冊表: 內置的容器註冊表, 用於存儲,共享和使用容器映像。
-
受保護的變量: 在部署期間使用受每個環境保護的變量安全地存儲和使用機密。
-
環境: 定義多個環境。
GitLab CI/CD架構
GitLab CI / CD
GitLab的一部分,GitLab是一個Web應用程序,具有將其狀態存儲在數據庫中的API。 除了GitLab的所有功能之外,它還管理項目/構建並提供一個不錯的用戶界面。
GitLab Runner
是一個處理構建的應用程序。 它可以單獨部署,並通過API與GitLab CI / CD一起使用。
.gitlab-ci.yml
定義流水線作業運行,位於應用項目根目錄下 。
爲了運行測試,至少需要一個 GitLab 實例、一個 GitLab Runner、一個gitlab-ci文件
GitLab CI/CD工作原理
-
將代碼託管到Git存儲庫。
-
在項目根目錄創建ci文件
.gitlab-ci.yml
,在文件中指定構建,測試和部署腳本。 -
GitLab將檢測到它並使用名爲GitLab Runner的工具運行腳本。
-
腳本被分組爲作業,它們共同組成了一個管道。
管道狀態也會由GitLab顯示:
最後,如果出現任何問題,可以輕鬆地 回滾所有更改:
一起學習呀: