gitlab-ci yml 的語法介紹


1. 介紹

管道配置從作業(job)開始, 作業是 .gitlab-ci.yml 文件的最基本元素。

job是:

  • 定義了約束,指出應在什么條件下執行
  • 具有任意名稱的頂級元素,並且必須至少包含 script 子句
  • 不限制,可以定義多個

//示例

job1:
  script: "echo job1"

job2:
  script: "echo job2"

上面是兩個簡單的job,其中每個 job 都執行不同的命令,在 script 中,可以直接執行命令(/.configure;make;make install)或運行腳本(test.sh)。

(1) 驗證 .gitlab-ci.yml

GitLab CI 的每個實例都有一個稱為 Lint 的嵌入式調試工具,該工具可以驗證 .gitlab-ci.yml 文件的內容。您可以在 ci/lint 項目名稱空間下找到它。

項目 -> CI/CD -> 流水線

(2) 不可用的作業名稱

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

(3)使用保留關鍵字

如果要使用保留關鍵字(比如 true ),請嘗試執行以下操作:

  • 使用引號,如 "true"
  • 改為其它形式,如 /bin/true

2. job 配置參數

下表列出 job 了可用的參數

關鍵字 描述
script 由 Runner 執行的 Shell 腳本
image 使用的 docker 映像。也可用: image:nameimage:entrypoint
services 使用的 docker 服務映像。也可用:services:nameservices:aliasservices:entrypoint,和services:command
before_script 重寫作業之前執行的一組命令。
after_script 重寫作業后執行的一組命令。
stages 定義管道中的階段。
stage 定義作業階段(默認:test)。
only 限制 job 的創建。也可用:only:refs, only:kubernetes, only:variables, and only:changes
except 限制什么時候不創建 job。也可用:except:refs, except:kubernetes, except:variables, except:changes
rules 用於評估和確定作業的選定屬性以及是否創建該作業的條件列表。不可與only/except一起使用。
tags 用於選擇 Runner 的 tags 列表。
allow_failure 允許作業失敗。失敗的工作不會影響提交狀態。
when 什么時候開始工作。也可用:when:manualwhen:delayed
environment 作業部署到環境的名稱。 也可用:environment:nameenvironment:urlenvironment:on_stopenvironment:auto_stop_inenvironment:action
cache 在后續運行之間應緩存的文件列表。也可用:cache:pathscache:keycache:untracked,和cache:policy
artifacts 成功時附加到作業的文件和目錄列表。也可用:artifacts:pathsartifacts:expose_asartifacts:nameartifacts:untrackedartifacts:whenartifacts:expire_inartifacts:reportsartifacts:reports:junit,和artifacts:reports:cobertura。在GitLab 企業版,這些都是可供選擇:artifacts:reports:codequality,artifacts:reports:sast,artifacts:reports:dependency_scanning,artifacts:reports:container_scanning,artifacts:reports:dast,artifacts:reports:license_management,artifacts:reports:performance和artifacts:reports:metrics。
dependencies 通過提供要從中獲取工件的作業列表,限制將哪些工件傳遞給特定作業。
coverage 給定作業的代碼覆蓋率設置。
retry 發生故障時可以自動重試作業的時間和次數。
timeout 定義自定義作業級別的超時,該超時優先於項目范圍的設置。
parallel 多少個作業實例應並行運行。
trigger 定義下游管道觸發器。
include 允許此作業包括外部YAML文件。也可用:include:localinclude:fileinclude:template,和include:remote
extends 該作業將要繼承的配置條目。
pages 上載作業結果以用於GitLab頁面。
variables 在作業級別上定義作業變量。
interruptible 定義在通過新的運行使其冗余時是否可以取消作業。
resource_group 限制作業並發。

參數詳情:https://docs.gitlab.com/ee/ci/yaml/README.html#parameter-details


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM