GitLab CI流水线配置文件.gitlab-ci.yml详解(三)
GitLab CI流水線配置文件.gitlab-ci.yml詳解
… contents:: 目錄
本文講解在 :ref:GitLab的漢化與CI持續集成gitlab-runner的配置 <configure_gitlab_i18n_and_create_gitlab_ci_with_gitlab_runner> 的基礎上,對GitLab CI流水線配置文件 .gitlab-ci.yml 進行詳細的介紹。
文章目錄
- GitLab CI流水線配置文件.gitlab-ci.yml詳解
- 1. 實驗環境
- 2. GitLab CI介紹
- 3. ``.gitlab-ci.yml`` 配置參數
- 4 參數詳解
- 4.1 [CI參數詳解(一)](https://guoqiang.blog.csdn.net/article/details/119275083)
- 4.2 [CI參數詳解(二)](https://guoqiang.blog.csdn.net/article/details/119277983)
1. 實驗環境
- server服務端: 操作系統為CentOS 7.6,IP:192.168.56.14, git:2.16.5。
查看server服務端信息::
[root@server ~]# cat /etc/centos-release
CentOS Linux release 7.6.1810 (Core)
[root@server ~]# ip a show|grep 192
inet 192.168.56.14/24 brd 192.168.xxx.xxx scope global noprefixroute enp0s3
[root@server ~]# git --version
git version 2.16.5
GitLab用戶信息::
賬號 密碼
root 1234567890
sunshine 1234567890
GitLab WEB網站地址: http://192.168.xxx.xxx
流水線執行的具體過程都是由 .gitlab-ci.yml 配置文件定義的,本文詳細講解 .gitlab-ci.yml 配置文件的使用。
2. GitLab CI介紹
-
GitLab提交持續集成服務,當你在項目根目錄中添加
.gitlab-ci.yml文件,并配置項目的運行器(GitLab Runner),那么后續的每次提交都會觸發CI流水線(pipeline)的執行。 -
.gitlab-ci.yml文件告訴運行器需要做哪些事情,默認情況下,流水線有build、test、deploy三個階段,即構建、測試、部署,未被使用的階段將會被自動忽略。 -
如果一切運行正常(沒有非零返回值),您將獲得與提交相關聯的漂亮綠色復選標記。這樣可以在查看代碼之前輕松查看提交是否導致任何測試失敗。
-
大多數項目使用GitLab的CI服務來運行測試套件,以便開發人員在破壞某些內容時可以立即獲得反饋。使用持續交付和持續部署將測試代碼自動部署到模擬環境和生產環境的趨勢越來越明顯。
-
由于將
.gitlab-ci.yml文件存放在倉庫中進行版本控制,使用單一的配置文件來控制流水線,具有讀訪問權限的每個人都可以查看內容,從而使其更有吸引力地改進和查看構建腳本。舊的版本也能構建成功,forks項目也容易使用CI,分支可以有不同的流水線和作業。 -
.gitlab-ci.yml定義每個項目的流水線的結構和順序,由以下兩個因素決定: -
GiTlab Runner運行器使用的執行器(
executor),執行器常用的Shell、Docker、Kubernets, 我們當前僅使用Shell執行器,后續再使用其他執行器。 -
遇到進程成功或失敗時等條件時做出的決定。
-
可以在 查看到流水線的簡單示例。
-
可以在
GitLab CI/CD Examples <https://docs.gitlab.com/ce/ci/examples/README.html>_ 查看更多的流水線示例。 -
在流水線腳本中可以使用預定義的全局變量,詳細可查看
-
[企業級的
.gitlab-ci.yml示例可查看] -
Job作業是
.gitlab-ci.yml文件的基本元素,每個作業至少有script子句,在流水線中可以定義任意多個作業。 -
每個作業必須具有唯一的名稱,但有一些保留的關鍵字不能用作作業名稱,保留關鍵字(
reserved keywords)有image、services、stages、types、before_script、after_script、variables、cache。
3. .gitlab-ci.yml 配置參數
| 關鍵字 | 描述 |
|---|---|
| script | 必須參數,運行器需要執行的腳本 |
| image | 使用Docker image鏡像 |
| services | 使用Docker services鏡像 |
| before_script | 作業執行前需要執行的命令 |
| after_script | 作業執行后需要執行的命令 |
| stages | 定義流水線所有的階段 |
| stage | 定義作業所處流水線的階段(默認test階段) |
| only | 限制作業在什么時候創建 |
| except | 限制作業在什么時候不創建 |
| tags | 作用使用的Runner運行器的標簽列表 |
| allow_failure | 允許作業失敗,失敗的作業不影響提交的狀態 |
| when | 什么時候運行作業 |
| environment | 作用部署的環境名稱 |
| cache | 指定需要在job之間緩存的文件或目錄 |
| artifacts | 歸檔文件列表,指定成功后應附加到job的文件和目錄的列表 |
| dependencies | 當前作業依賴的其他作業,你可以使用依賴作業的歸檔文件 |
| coverage | 作業的代碼覆蓋率 |
| retry | 作業失敗時,可以自動執行多少次 |
| parallel | 指定并行運行的作業實例 |
| trigger | 定義下游流水線的觸發器 |
| include | 作業加載其他YAML文件 |
| extends | 控制實體從哪里繼承 |
| pages | 上傳GitLab Pages的結果 |
| retry | 作業失敗時,可以自動執行多少次 |
| variables | 定義環境變量 |
4 參數詳解
4.1 CI參數詳解(一)
4.2 CI參數詳解(二)
總結
以上是生活随笔為你收集整理的GitLab CI流水线配置文件.gitlab-ci.yml详解(三)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 换个后保险杠多少钱
- 下一篇: 黄山风景区淡季是几月份