1. 程式人生 > >Gitlab CI/CD 流水線配置參考

Gitlab CI/CD 流水線配置參考

Gitlab CI/CD 流水線配置參考

.gitlab-ci.yml檔案定義了流水線的結構和順序,並確定:

  • 使用GitLab Runner執行什麼。
  • 遇到特定條件時要做出哪些決定。例如,當程序成功或失敗時。

不可用的jobs名稱

每個作業必須具有唯一的名稱,但有一些保留的關鍵字不能用作作業名稱:

  • image
  • services
  • stages
  • types
  • before_script
  • after_script
  • variables
  • cache

配置引數

引數作用描述
scriptscript是job所需要的唯一必須的引數。它是一個由Runner執行的shell指令碼
image用於指定用於job的Docker映象。
services用於指定服務的Docker映象,連結到映象中指定的基本映象。
before_script用於定義應在所有作業(包括部署作業)之前執行但在恢復工件之後執行的命令。這可以是陣列或多行字串。
after_script用於定義將在所有作業(包括失敗的作業)之後執行的命令。這必須是陣列或多行字串。
stages用於定義可由作業使用的階段,並在全範圍內定義。
stagestage是按工作定義的,依賴於全域性定義的階段。它允許將作業分組到不同的階段,並且同一階段的作業並行執行(受特定條件限制)。
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/目錄路徑的工件。
variablesGitLab CI/CD允許您在.gitlab-ci.yml中定義變數,然後在作業環境中傳遞。 它們可以在全域性和每個作業設定。 在作業級別使用variables關鍵字時,它會覆蓋全域性YAML變數和預定義變數。