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

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值