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