由于格式和图片解析问题,为了更好阅读体验可前往 阅读原文
流水线的流程是,提交代码后,gitlab会检测项目根目录里的.github-ci.yml
文件,根据文件中的流水线自动构建,配置文件格式正确性可以在gitlab进行文件校验,格式使用yaml文件格式,一个yaml文件就是一个流水线,里面会定义多个作业
示例
stages:
- install
- build
- deploy
install_job:
stage: install
tags:
- docker
script:
- echo install stage
build_job:
stage: build
script:
- echo build stage
deploy_job:
stage: deploy
script:
- echo deploy stage
默认变量
gitlab会提供一些默认变量使用,这里列出默认变量
https://docs.gitlab.com/ee/ci/variables/predefined_variables.html
通用变量
变量 | GitLab | Runner | 描述 |
---|---|---|---|
CHAT_CHANNEL |
10.6 | all | 触发 ChatOps 命令的源聊天频道。 |
CHAT_INPUT |
10.6 | all | 使用 ChatOps 命令传递的附加参数。 |
CHAT_USER_ID |
14.4 | all | 触发 ChatOps 命令的用户的聊天服务用户 ID。 |
CI |
all | 0.4 | 适用于在 CI/CD 中执行的所有作业。可用时为 true 。 |
CI_API_V4_URL |
11.7 | all | GitLab API v4 根 URL。 |
CI_BUILDS_DIR |
all | 11.10 | 执行构建的顶级目录。 |
CI_COMMIT_AUTHOR |
13.11 | all | Name <email> 格式的提交作者。 |
CI_COMMIT_BEFORE_SHA |
11.2 | all | 出现在分支或标签上的上一个最新提交。在合并请求的流水线中总是 0000000000000000000000000000000000000000 。 |
CI_COMMIT_BRANCH |
12.6 | 0.5 | 提交分支名称。在分支流水线中可用,包括默认分支的流水线。在合并请求流水线或标签流水线中不可用。 |
CI_COMMIT_DESCRIPTION |
10.8 | all | 提交的描述。如果标题短于 100 个字符,则消息没有第一行。 |
CI_COMMIT_MESSAGE |
10.8 | all | 完整的提交消息。 |
CI_COMMIT_REF_NAME |
9.0 | all | 为其构建项目的分支或标签名称。 |
CI_COMMIT_REF_PROTECTED |
11.11 | all | 如果作业正在运行以获取受保护的 ref 为 true 。 |
CI_COMMIT_REF_SLUG |
9.0 | all | CI_COMMIT_REF_NAME 小写,缩短为 63 字节,除了 0-9 和 a-z 之外的所有内容都替换为 - 。没有前导/尾随- 。 在 URL、主机名和域名中使用。 |
CI_COMMIT_SHA |
9.0 | all | 项目为其构建的提交修订。 |
CI_COMMIT_SHORT_SHA |
11.7 | all | CI_COMMIT_SHA 的前八个字符。 |
CI_COMMIT_TAG |
9.0 | 0.5 | 提交标签名称。仅在标签流水线中可用。 |
CI_COMMIT_TAG_MESSAGE |
15.5 | all | 提交标签消息。仅在标签流水线中可用。 |
CI_COMMIT_TIMESTAMP |
13.4 | all | ISO 8601 格式的提交时间戳。 |
CI_COMMIT_TITLE |
10.8 | all | 提交的标题。消息的完整第一行。 |
CI_CONCURRENT_ID |
all | 11.10 | 单个 executor 中构建执行的唯一 ID。 |
CI_CONCURRENT_PROJECT_ID |
all | 11.10 | 单个 executor 和项目中构建执行的唯一 ID。 |
CI_CONFIG_PATH |
9.4 | 0.5 | CI/CD 配置文件的路径。默认为.gitlab-ci.yml 。在正在运行的流水线中只读。 |
CI_DEBUG_TRACE |
all | 1.7 | 如果 debug 日志 (跟踪) 已启用为true 。 |
CI_DEBUG_SERVICES |
15.7 | 15.7 | true 如果启用了服务容器日志,值为 true 。 |
CI_DEFAULT_BRANCH |
12.4 | all | 项目默认分支的名称。 |
CI_DEPENDENCY_PROXY_GROUP_IMAGE_PREFIX |
13.7 | all | 通过 Dependency Proxy 拉取镜像的顶级群组镜像前缀。 |
CI_DEPENDENCY_PROXY_DIRECT_GROUP_IMAGE_PREFIX |
14.3 | all | 通过 Dependency Proxy 拉取镜像的直接群组镜像前缀。 |
CI_DEPENDENCY_PROXY_PASSWORD |
13.7 | all | 通过 Dependency Proxy 拉取镜像的密码。 |
CI_DEPENDENCY_PROXY_SERVER |
13.7 | all | 用于登录 Dependency Proxy 的服务器。相当于 $CI_SERVER_HOST:$CI_SERVER_PORT 。 |
CI_DEPENDENCY_PROXY_USER |
13.7 | all | 通过 Dependency Proxy 拉取镜像的用户名。 |
CI_DEPLOY_FREEZE |
13.2 | all | 仅当流水线在部署冻结窗口期间运行时才可用。可用时为 true 。 |
CI_DEPLOY_PASSWORD |
10.8 | all | GitLab Deploy Token 的认证密码,如果项目有的话。 |
CI_DEPLOY_USER |
10.8 | all | GitLab Deploy Token 的认证用户名,如果项目有的话。 |
CI_DISPOSABLE_ENVIRONMENT |
all | 10.1 | 仅当作业在一次性环境中执行时才可用(仅为该作业创建并在执行后处理/销毁 - 除 shell 和 ssh 之外的所有 executor)。可用时为 true 。 |
CI_ENVIRONMENT_NAME |
8.15 | all | 此作业的环境名称。 如果设置了 environment:name ,则可用。 |
CI_ENVIRONMENT_SLUG |
8.15 | all | 环境名称的简化版本,适合包含在 DNS、URL、Kubernetes labels 等。如果设置了 environment:name ,则可用。Slug 被截断为 24 个字符。 |
CI_ENVIRONMENT_URL |
9.3 | all | 此作业的环境 URL。如果设置了 environment:url ,则可用。 |
CI_ENVIRONMENT_ACTION |
13.11 | all | 为此作业的环境指定的操作注释。如果设置了 environment:action ,则可用。可以是start 、prepare 或 stop 。 |
CI_ENVIRONMENT_TIER |
14.0 | all | 此作业的环境部署级别。 |
CI_RELEASE_DESCRIPTION |
15.5 | all | 发布的描述。仅在标签流水线上可用。描述长度限制为前 1024 个字符。 |
CI_GITLAB_FIPS_MODE |
14.10 | all | 实例中是否启用 FIPS 模式的配置设置。 |
CI_HAS_OPEN_REQUIREMENTS |
13.1 | all | 仅当流水线的项目具有打开的需求 时才可用。可用时为 true 。 |
CI_JOB_ID |
9.0 | all | 作业的内部 ID,在 GitLab 实例中的所有作业中是唯一的。 |
CI_JOB_IMAGE |
12.9 | 12.9 | 运行作业的 Docker 镜像的名称。 |
CI_JOB_JWT |
12.10 | all | 一个 RS256 JSON Web 令牌,用于与支持 JWT 身份验证的第三方系统进行身份验证,例如 HashiCorp’s Vault。 |
CI_JOB_JWT_V1 |
14.6 | all | 与 CI_JOB_JWT 相同的值。 |
CI_JOB_MANUAL |
8.12 | all | 如果作业是手动启动为 true 。 |
CI_JOB_NAME </ |