ci/cd关键字
GitLab CI/CD 管道配置包括:
- 配置管道行为的全局关键字(详解以及实例见下):
关键词 | 描述 |
---|---|
default | 作业关键字的自定义默认值。 |
include | 从其他 YAML 文件导入配置。 |
stages | 管道阶段的名称和顺序。 |
variables | 为管道中的所有作业定义 CI/CD 变量。 |
workflow | 控制运行的管道类型。 |
- 配置job的关键词
关键词 | 描述 |
---|---|
after_script | 覆盖在作业后执行的一组命令。 |
allow_failure | 允许作业失败。失败的作业不会导致管道失败。 |
artifacts | 成功时要附加到作业的文件和目录的列表。 |
before_script | 覆盖在作业之前执行的一组命令。 |
cache | 应在后续运行之间缓存的文件列表。 |
coverage | 给定作业的代码覆盖率设置。 |
dast_configuration | 在作业级别上使用 DAST 配置文件中的配置。 |
dependencies | 通过提供要从中获取项目的作业列表,限制将哪些项目传递到特定作业。 |
environment | 作业部署到的环境的名称。 |
except | 控制何时不创建作业。 |
extends | 此作业从中继承的配置条目。 |
image | 使用 Docker 映像。 |
inherit | 选择所有作业继承的全局默认值。 |
interruptible | 定义当较新的运行冗余时,是否可以取消作业。 |
needs | 在阶段排序之前执行作业。 |
only | 控制何时创建作业。 |
pages | 上传作业的结果以用于 GitLab 页面。 |
parallel | 应并行运行作业的实例数。 |
release | 指示运行程序生成发布对象。 |
resource_group | 限制作业并发。 |
retry | 在发生故障时,作业可以自动重试的时间和次数。 |
rules | 用于评估和确定作业的选定属性以及是否创建作业的条件列表。 |
script | 由运行器执行的 Shell 脚本。 |
secrets | 作业所需的 CI/CD 机密。 |
services | 使用泊坞窗服务映像。 |
stage | 定义作业阶段。 |
tags | 用于选择运行器的标记列表。 |
timeout | 定义优先于项目范围的设置的自定义作业级别超时。 |
trigger | 定义下游管道触发器。 |
variables | 在作业级别定义作业变量。 |
when | 何时运行作业。 |
关键字详解
- 全局关键词
default
可能的子项输入:
- after_script
- artifacts
- before_script
- cache
- image
- interruptible
- retry
- services
- tags
- timeout
含义:为某些关键字设置全局默认值
示例:
default:
image: ruby:3.0
rspec:
script: bundle exec rspec
rspec 2.7:
image: ruby:2.7
script: bundle exec rspec
include
含义:自定义.gitlab-ci.yml路径使多个.gitlab-ci.yml配置文件合并
可能的子项输入:
- include:local
- include:file
- include:remote
- include:template
示例:
include:
- local: '/templates/.gitlab-ci-template.yml'
stages
含义:用于定义包含作业组的阶段
可能的子项输入:
- .pre
- build
- test
- deploy
- .post
示例:
stages:
- build
- test
- deploy
workflow
含义:使用工作流控制管道行为。
可能的子项输入:
- if.
- changes.
- exists.
- when.
- variables.
示例:
workflow:
rules:
- if: $CI_COMMIT_TITLE =~ /-draft$/
when: never
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
- if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
jobs
含义:定义工作
可能的子项输入:
- after_script
- allow_failure
- script
- when.
- variables.
示例:
test_job_1:
script:
- echo "Run a script that results in exit code 1. This job fails."
- exit 1
allow_failure:
exit_codes: 137
test_job_2:
script:
- echo "Run a script that results in exit code 137. This job is allowed to fail."
- exit 137
allow_failure:
exit_codes:
- 137
- 255