Gitlab CI/CD 流水線配置參考
阿新 • • 發佈:2019-08-04
Gitlab CI/CD 流水線配置參考
.gitlab-ci.yml檔案定義了流水線的結構和順序,並確定:
- 使用GitLab Runner執行什麼。
- 遇到特定條件時要做出哪些決定。例如,當程序成功或失敗時。
不可用的jobs名稱
每個作業必須具有唯一的名稱,但有一些保留的關鍵字不能用作作業名稱:
- image
- services
- stages
- types
- before_script
- after_script
- variables
- cache
配置引數
引數 | 作用描述 |
---|---|
script | script是job所需要的唯一必須的引數。它是一個由Runner執行的shell指令碼 |
image | 用於指定用於job的Docker映象。 |
services | 用於指定服務的Docker映象,連結到映象中指定的基本映象。 |
before_script | 用於定義應在所有作業(包括部署作業)之前執行但在恢復工件之後執行的命令。這可以是陣列或多行字串。 |
after_script | 用於定義將在所有作業(包括失敗的作業)之後執行的命令。這必須是陣列或多行字串。 |
stages | 用於定義可由作業使用的階段,並在全範圍內定義。 |
stage | stage是按工作定義的,依賴於全域性定義的階段。它允許將作業分組到不同的階段,並且同一階段的作業並行執行(受特定條件限制)。 |
only | 定義作業將執行的分支(branches)和標記(tags)的名稱。 |
except | 定義作業不會執行的分支和標記的名稱。 |
tags | 用於從允許執行此專案的所有執行程式列表中選擇特定的執行程式。 |
allow_failure | 允許作業失敗而不會影響CI套件的其餘部分。除手動作業外,預設值為false。 |
when | 用於實現在發生故障或儘管發生故障時執行的作業。取值:on_success,on_failure,always ,manual |
environment | 用於定義作業部署到特定環境。如果指定了環境且該名稱下沒有環境,則將自動建立一個新環境。 |
cache | 用於指定應在作業之間快取的檔案和目錄列表。您只能使用專案工作區內的路徑。 |
artifacts | 用於指定檔案和目錄的列表,這些檔案和目錄應在成功,失敗或始終作業時附加到作業。作業完成後,工件將被髮送到GitLab,並可在GitLab UI中下載。 |
dependencies | 此功能應與工件結合使用,並允許您定義要在不同作業之間傳遞的工件。 |
coverage | 允許您配置從作業輸出中提取程式碼覆蓋率的方式。 |
retry | 允許您配置在發生故障時重試作業的次數。 |
parallel | 允許您配置並行執行的作業例項數。該值必須大於或等於二(2)且小於或等於50。 |
trigger | 允許您定義下游流水線觸發器。當GitLab啟動從觸發器定義建立的作業時,將建立下游流水線 |
include | 使用include關鍵字,您可以允許包含外部YAML檔案。 include要求外部YAML檔案具有副檔名.yml或.yaml,否則將不包括外部檔案。 |
extends | 定義了使用extends的作業將繼承的作業名稱。 |
pages | 是一項特殊工作,用於將靜態內容上傳到GitLab,可用於為您的網站提供服務。它具有特殊語法,因此必須滿足以下兩個要求:任何靜態內容都必須放在public/目錄下。必須定義具有public/目錄路徑的工件。 |
variables | GitLab CI/CD允許您在.gitlab-ci.yml中定義變數,然後在作業環境中傳遞。 它們可以在全域性和每個作業設定。 在作業級別使用variables關鍵字時,它會覆蓋全域性YAML變數和預定義變數。 |