预定义的CI/CD变量参考
- 层级:免费版、高级版、旗舰版
- 提供方式:GitLab.com、GitLab 自托管、GitLab 专用
每个 GitLab CI/CD 流水线都提供了预定义的 CI/CD 变量。
避免 覆盖 预定义变量,因为这可能导致流水线行为异常。
变量的可用性
预定义变量在流水线执行的三个不同阶段变得可用:
- 预流水线(Pre-pipeline):预流水线变量在创建流水线之前可用。这些变量是唯一可用于
include:rules的变量,用于控制创建流水线时使用的配置文件。 - 流水线(Pipeline):当 GitLab 创建流水线时,流水线变量变得可用。与预流水线变量一起,流水线变量可用于配置作业中定义的
rules,以确定将哪些作业添加到流水线中。 - 仅作业(Job-only):这些变量仅在运行器(runner)获取并执行作业时对每个作业可用,并且:
预定义变量
| 变量 | 可用性 | 说明 |
|---|---|---|
CHAT_CHANNEL |
流水线 | 触发 ChatOps 命令的源聊天频道。 |
CHAT_INPUT |
流水线 | 随 ChatOps 命令传递的额外参数。 |
CHAT_USER_ID |
流水线 | 触发 ChatOps 命令的用户在聊天服务中的用户ID。 |
CI |
预流水线 | 所有在CI/CD中执行的任务都可用。当可用时为 true。 |
CI_API_V4_URL |
预流水线 | GitLab API v4 根URL。 |
CI_API_GRAPHQL_URL |
预流水线 | GitLab API GraphQL 根URL。GitLab 15.11 引入。 |
CI_BUILDS_DIR |
仅任务 | 执行构建的顶级目录。 |
CI_COMMIT_AUTHOR |
预流水线 | 提交作者,格式为 姓名 <邮箱>。 |
CI_COMMIT_BEFORE_SHA |
预流水线 | 分支或标签上之前的最新提交。对于合并请求流水线、计划流水线、分支或标签的第一个提交流水线,或手动运行流水线时,始终为 0000000000000000000000000000000000000000。 |
CI_COMMIT_BRANCH |
预流水线 | 提交分支名称。在分支流水线(包括默认分支流水线)中可用。在合并请求流水线或标签流水线中不可用。 |
CI_COMMIT_DESCRIPTION |
预流水线 | 提交描述。如果标题短于100个字符,则为消息的第一行以外的内容。 |
CI_COMMIT_MESSAGE |
预流水线 | 完整的提交信息。 |
CI_COMMIT_REF_NAME |
预流水线 | 为其构建项目的分支或标签名称。 |
CI_COMMIT_REF_PROTECTED |
预流水线 | 如果作业正在受保护的引用下运行,则为 true;否则为 false。 |
CI_COMMIT_REF_SLUG |
预流水线 | CI_COMMIT_REF_NAME 转换为小写,缩短至63字节,并将除 0-9 和 a-z 以外的所有字符替换为 -。无前导/尾随 -。用于URL、主机名和域名。 |
CI_COMMIT_SHA |
预流水线 | 项目构建所用的提交版本。 |
CI_COMMIT_SHORT_SHA |
预流水线 | CI_COMMIT_SHA 的前八个字符。 |
CI_COMMIT_TAG |
预流水线 | 提交标签名称。仅在标签流水线中可用。 |
CI_COMMIT_TAG_MESSAGE |
预流水线 | 提交标签信息。仅在标签流水线中可用。GitLab 15.5 引入。 |
CI_COMMIT_TIMESTAMP |
预流水线 | 提交的时间戳,格式为 ISO 8601。例如:2022-01-31T16:47:55Z。默认为UTC。 |
CI_COMMIT_TITLE |
预流水线 | 提交标题。消息的第一行完整内容。 |
CI_CONCURRENT_ID |
仅任务 | 单个执行器中构建执行的唯一ID。 |
CI_CONCURRENT_PROJECT_ID |
仅任务 | 单个项目和单个执行器中构建执行的唯一ID。 |
CI_CONFIG_PATH |
预流水线 | CI/CD配置文件的路径。默认为 .gitlab-ci.yml。 |
CI_DEBUG_TRACE |
流水线 | 如果启用了调试日志记录(跟踪),则为 true。 |
CI_DEBUG_SERVICES |
流水线 | 如果启用了服务容器日志记录,则为 true。GitLab 15.7 引入。需要GitLab Runner 15.7。 |
CI_DEFAULT_BRANCH |
预流水线 | 项目的默认分支名称。 |
CI_DEFAULT_BRANCH_SLUG |
预流水线 | CI_DEFAULT_BRANCH 转换为小写,缩短至63字节,并将除 0-9 和 a-z 以外的所有字符替换为 -。无前导/尾随 -。用于URL、主机名和域名。 |
CI_DEPENDENCY_PROXY_DIRECT_GROUP_IMAGE_PREFIX |
预流水线 | 通过依赖代理拉取镜像的直接组镜像前缀。 |
CI_DEPENDENCY_PROXY_GROUP_IMAGE_PREFIX |
预流水线 | 通过依赖代理拉取镜像的顶级组镜像前缀。 |
| CI_DEPENDENCY_PROXY_PASSWORD | Pipeline | 用于通过依赖代理拉取镜像的密码。 |
| CI_DEPENDENCY_PROXY_SERVER | Pre-pipeline | 用于登录依赖代理的服务器。此变量等同于 $CI_SERVER_HOST:$CI_SERVER_PORT$。 | | CI_DEPENDENCY_PROXY_USER | Pipeline | 用于通过依赖代理拉取镜像的用户名。 | |CI_DEPLOY_FREEZE | Pre-pipeline | 仅在管道运行于部署冻结窗口期间可用。[deploy freeze window](../../user/project/releases/_index.md#prevent-unintentional-releases-by-setting-a-deploy-freeze)。可用时为true。 | | CI_DEPLOY_PASSWORD | Job-only | 如果项目有[GitLab 部署令牌](../../user/project/deploy_tokens/_index.md#gitlab-deploy-token),则是其认证密码。 | |CI_DEPLOY_USER | Job-only | 如果项目有[GitLab 部署令牌](../../user/project/deploy_tokens/_index.md#gitlab-deploy-token),则是其认证用户名。 | |CI_DISPOSABLE_ENVIRONMENT | Pipeline | 仅在作业在一次性环境中执行时可用(该环境仅为本次作业创建,执行后即被销毁/删除——除shell和ssh外的所有执行器)。可用时为true。 | | CI_ENVIRONMENT_ID | Pipeline | 此作业对应环境的 ID。当设置 [environment:name](../yaml/_index.md#environmentname) 时可用。 | | CI_ENVIRONMENT_NAME | Pipeline | 此作业对应环境的名称。当设置 [environment:name](../yaml/_index.md#environmentname) 时可用。 | | CI_ENVIRONMENT_SLUG | Pipeline | 环境名称的简化版本,适用于包含在 DNS、URL、Kubernetes 标签等中。当设置 [environment:name](../yaml/_index.md#environmentname) 时可用。slug 会被[截断为 24 个字符](https://gitlab.com/gitlab-org/gitlab/-/issues/20941)。大写环境名称会自动添加随机后缀[参考](https://gitlab.com/gitlab-org/gitlab/-/issues/415526)。 | | CI_ENVIRONMENT_URL | Pipeline | 此作业对应环境的 URL。当设置 [environment:url](../yaml/_index.md#environmenturl) 时可用。 | | CI_ENVIRONMENT_ACTION | Pipeline | 为此作业环境指定的操作注解。当设置 [environment:action](../yaml/_index.md#environmentaction) 时可用。可为 start、prepare或stop。 | | CI_ENVIRONMENT_TIER | Pipeline | 此作业对应环境的[部署层级](../environments/_index.md#deployment-tier-of-environments)。 | |CI_GITLAB_FIPS_MODE | Pre-pipeline | 仅在 GitLab 实例启用[FIPS 模式](../../development/fips_gitlab.md)时可用。可用时为true。 | | CI_HAS_OPEN_REQUIREMENTS | Pipeline | 仅在管道的项目有未关闭的[需求](../../user/project/requirements/_index.md)时可用。可用时为true。 | | CI_JOB_GROUP_NAME | Pipeline | 使用[parallel](../yaml/_index.md#parallel)或[手动分组作业](../jobs/_index.md#group-similar-jobs-together-in-pipeline-views)时一组作业的共享名称。例如,若作业名为 rspec:test: [ruby, ubuntu],则 CI_JOB_GROUP_NAME为rspec:test。否则与 CI_JOB_NAME相同。GitLab 17.10 引入。 | |CI_JOB_ID | Job-only | 作业的内部 ID,在整个 GitLab 实例的所有作业中唯一。 | |CI_JOB_IMAGE | Pipeline | 运行作业的 Docker 镜像名称。 | |CI_JOB_MANUAL | Pipeline | 仅在作业由人工启动时可用。可用时为true。 | | CI_JOB_NAME | Pipeline | 作业的名称。 | |CI_JOB_NAME_SLUG | Pipeline |CI_JOB_NAME转换为小写,缩短至 63 字节,并将除0-9和a-z以外的所有字符替换为-。无前导/尾随 -。用于路径。GitLab 15.4 引入。 | | CI_JOB_STAGE | Pipeline | 作业所属阶段(stage)的名称。 | |CI_JOB_STATUS | Job-only | 每个 runner 阶段执行时的作业状态。可与 [after_script](../yaml/_index.md#after_script) 配合使用。可为 success、failed或canceled。 | | CI_JOB_TIMEOUT` | Job-only | 作业的超时时间(秒)。GitLab 15.7 引入。需 GitLab Runner 15.7 支持。 |
| CI_JOB_TOKEN | 仅作业可用 | 用于认证特定 API 端点的令牌。只要作业正在运行,该令牌就有效。 |
| CI_JOB_URL | 仅作业可用 | 作业详情 URL。 |
| CI_JOB_STARTED_AT | 仅作业可用 | 作业开始时的日期和时间,格式为 ISO 8601。例如:2022-01-31T16:47:55Z。默认为 UTC。 |
| CI_KUBERNETES_ACTIVE | 预流水线 | 仅当流水线有可用的 Kubernetes 集群用于部署时才可用。可用时为 true。 |
| CI_NODE_INDEX | 流水线 | 作业在作业集中的索引。仅当作业使用 parallel 时可用。 |
| CI_NODE_TOTAL | 流水线 | 此作业并行运行的实例总数。如果作业不使用 parallel,则设置为 1。 |
| CI_OPEN_MERGE_REQUESTS | 预流水线 | 使用当前分支和项目作为合并请求源的最多四个合并请求的逗号分隔列表。仅在分支和合并请求流水线中可用(如果分支有关联的合并请求)。例如:gitlab-org/gitlab!333,gitlab-org/gitlab-foss!11。 |
| CI_PAGES_DOMAIN | 预流水线 | 托管 GitLab Pages 的实例域名,不包括命名空间子域。要使用完整主机名,请改用 CI_PAGES_HOSTNAME。 |
| CI_PAGES_HOSTNAME | 仅作业可用 | Pages 部署的完整主机名。 |
| CI_PAGES_URL | 仅作业可用 | GitLab Pages 网站的 URL。始终是 CI_PAGES_DOMAIN 的子域。在 GitLab 17.9 及更高版本中,当指定了 path_prefix 时,值会包含它。 |
| CI_PIPELINE_ID | 仅作业可用 | 当前流水线的实例级 ID。此 ID 在 GitLab 实例的所有项目中都是唯一的。 |
| CI_PIPELINE_IID | 流水线 | 当前流水线的项目级 IID(内部 ID)。此 ID 仅在当前项目中唯一。 |
| CI_PIPELINE_SOURCE | 预流水线 | 流水线如何被触发。值可以是 流水线来源 之一。 |
| CI_PIPELINE_TRIGGERED | 流水线 | 如果作业被 触发,则为 true。 |
| CI_PIPELINE_URL | 仅作业可用 | 流水线详情的 URL。 |
| CI_PIPELINE_CREATED_AT | 仅作业可用 | 流水线创建时的日期和时间,格式为 ISO 8601。例如:2022-01-31T16:47:55Z。默认为 UTC。 |
| CI_PIPELINE_NAME | 预流水线 | 在 workflow:name 中定义的流水线名称。GitLab 16.3 引入。 |
| CI_PIPELINE_SCHEDULE_DESCRIPTION | 预流水线 | 流水线计划的描述。仅在计划流水线中可用。GitLab 17.8 引入。 |
| CI_PROJECT_DIR | 仅作业可用 | 存储库克隆到的完整路径,也是作业运行的目录。如果设置了 GitLab Runner 的 builds_dir 参数,此变量将相对于 builds_dir 的值设置。更多信息,请参阅 高级 GitLab Runner 配置。 |
| CI_PROJECT_ID | 预流水线 | 当前项目的 ID。此 ID 在 GitLab 实例的所有项目中都是唯一的。 |
| CI_PROJECT_NAME | 预流水线 | 项目目录的名称。例如,如果项目 URL 是 gitlab.example.com/group-name/project-1,则 CI_PROJECT_NAME 为 project-1。 |
| CI_PROJECT_NAMESPACE | 预流水线 | 作业的项目命名空间(用户名或组名)。 |
| CI_PROJECT_NAMESPACE_ID | 预流水线 | 作业的项目命名空间 ID。GitLab 15.7 引入。 |
| CI_PROJECT_NAMESPACE_SLUG | 预流水线 | 将 $CI_PROJECT_NAMESPACE 转换为小写,并将非 a-z 或 0-9 的字符替换为 -,然后缩短到 63 字节。 |
| CI_PROJECT_PATH_SLUG | 预流水线 | 将 $CI_PROJECT_PATH 转换为小写,并将非 a-z 或 0-9 的字符替换为 -,然后缩短到 63 字节。用于 URL 和域名。 |
| CI_PROJECT_PATH | Pre-pipeline | 包含项目名称的项目命名空间。 |
| CI_PROJECT_REPOSITORY_LANGUAGES | Pre-pipeline | 以逗号分隔的小写列表,包含仓库中使用的编程语言。例如 ruby,javascript,html,css。最多支持 5 种语言。此问题提议增加限制。 |
| CI_PROJECT_ROOT_NAMESPACE | Pre-pipeline | 作业所属项目的根命名空间(用户名或组名)。例如,若 CI_PROJECT_NAMESPACE 为 root-group/child-group/grandchild-group,则 CI_PROJECT_ROOT_NAMESPACE 为 root-group。 |
| CI_PROJECT_TITLE | Pre-pipeline | 显示在 GitLab 网页界面中的易读项目名称。 |
| CI_PROJECT_DESCRIPTION | Pre-pipeline | 显示在 GitLab 网页界面中的项目描述。GitLab 15.1 版本引入。 |
| CI_PROJECT_TOPICS | Pre-pipeline | 以逗号分隔的小写列表,包含分配给项目的主题(仅前 20 个)。GitLab 18.3 版本引入。 |
| CI_PROJECT_URL | Pre-pipeline | 项目的 HTTP(S) 地址。 |
| CI_PROJECT_VISIBILITY | Pre-pipeline | 项目可见性。可为 internal、private 或 public。 |
| CI_PROJECT_CLASSIFICATION_LABEL | Pre-pipeline | 项目的外部授权分类标签。 |
| CI_REGISTRY | Pre-pipeline | 容器注册表 服务器的地址,格式为 <host>[:<port>]。例如:registry.gitlab.example.com。仅在 GitLab 实例启用容器注册表时可用。 |
| CI_REGISTRY_IMAGE | Pre-pipeline | 用于推送、拉取或标记项目镜像的容器注册表基础地址,格式为 <host>[:<port>]/<project_full_path>。例如:registry.gitlab.example.com/my_group/my_project。镜像名称需遵循容器注册表命名规范。仅在项目启用容器注册表时可用。 |
| CI_REGISTRY_PASSWORD | Job-only | 推送容器到 GitLab 项目容器注册表的密码。仅在项目启用容器注册表时可用。该密码值与 CI_JOB_TOKEN 相同,仅在作业运行期间有效。若需长期访问注册表,请使用 CI_DEPLOY_PASSWORD。 |
| CI_REGISTRY_USER | Job-only | 推送容器到项目 GitLab 容器注册表的用户名。仅在项目启用容器注册表时可用。 |
| CI_RELEASE_DESCRIPTION | Pipeline | 发布的描述。仅在标签对应的管道中可用。描述长度限制为前 1024 个字符。GitLab 15.5 版本引入。 |
| CI_REPOSITORY_URL | Job-only | 使用CI/CD 作业令牌克隆仓库的完整路径(HTTP 格式),格式为 https://gitlab-ci-token:$CI_JOB_TOKEN@gitlab.example.com/my-group/my-project.git。 |
| CI_RUNNER_DESCRIPTION | Job-only | 运行器的描述。 |
| CI_RUNNER_EXECUTABLE_ARCH | Job-only | GitLab Runner 可执行文件的操作系统/架构。可能与执行器的环境不同。 |
| CI_RUNNER_ID | Job-only | 正在使用运行器的唯一 ID。 |
| CI_RUNNER_REVISION | Job-only | 运行作业的运行器版本。 |
| CI_RUNNER_SHORT_TOKEN | Job-only | 运行器的唯一 ID,用于认证新作业请求。令牌包含前缀,实际使用前 17 个字符。 |
| CI_RUNNER_TAGS | Job-only | 运行器标签的 JSON 数组。例如 ["tag_1", "tag_2"]。 |
| CI_RUNNER_VERSION | Job-only | 运行作业的 GitLab Runner 版本。 |
| CI_SERVER_FQDN | Pre-pipeline | 实例的完全限定域名(FQDN)。例如 gitlab.example.com:8080。GitLab 16.10 版本引入。 |
| CI_SERVER_HOST | Pre-pipeline | GitLab 实例 URL 的主机名,不含协议或端口。例如 gitlab.example.com。 |
| CI_SERVER_NAME | Pre-pipeline | 协调作业的 CI/CD 服务器的名称。 |
| CI_SERVER_PORT | Pre-pipeline | GitLab 实例 URL 的端口,不含主机或协议。例如 8080。 |
| CI_SERVER_PROTOCOL | Pre-pipeline | GitLab 实例 URL 的协议,不含主机或端口。例如 https。 |
| CI_SERVER_SHELL_SSH_HOST | Pre-pipeline | GitLab 实例的 SSH 主机,用于通过 SSH 访问 Git 仓库。例如 gitlab.com。GitLab 15.11 引入。 |
| CI_SERVER_SHELL_SSH_PORT | Pre-pipeline | GitLab 实例的 SSH 端口,用于通过 SSH 访问 Git 仓库。例如 22。GitLab 15.11 引入。 |
| CI_SERVER_REVISION | Pre-pipeline | 调度作业的 GitLab 版本。 |
| CI_SERVER_TLS_CA_FILE | Pipeline | 包含 TLS CA 证书的文件,当在 runner 设置 中设置 tls-ca-file 时,用于验证 GitLab 服务器。 |
| CI_SERVER_TLS_CERT_FILE | Pipeline | 包含 TLS 证书的文件,当在 runner 设置 中设置 tls-cert-file 时,用于验证 GitLab 服务器。 |
| CI_SERVER_TLS_KEY_FILE | Pipeline | 包含 TLS 密钥的文件,当在 runner 设置 中设置 tls-key-file 时,用于验证 GitLab 服务器。 |
| CI_SERVER_URL | Pre-pipeline | GitLab 实例的基础 URL,包括协议和端口。例如 https://gitlab.example.com:8080。 |
| CI_SERVER_VERSION_MAJOR | Pre-pipeline | GitLab 实例的主版本号。例如,若 GitLab 版本为 17.2.1,则 CI_SERVER_VERSION_MAJOR 为 17。 |
| CI_SERVER_VERSION_MINOR | Pre-pipeline | GitLab 实例的次版本号。例如,若 GitLab 版本为 17.2.1,则 CI_SERVER_VERSION_MINOR 为 2。 |
| CI_SERVER_VERSION_PATCH | Pre-pipeline | GitLab 实例的补丁版本号。例如,若 GitLab 版本为 17.2.1,则 CI_SERVER_VERSION_PATCH 为 1。 |
| CI_SERVER_VERSION | Pre-pipeline | GitLab 实例的完整版本。 |
| CI_SERVER | Job-only | 适用于所有在 CI/CD 中执行的作业。可用时为 yes。 |
| CI_SHARED_ENVIRONMENT | Pipeline | 仅当作业在共享环境中执行时可用(如 shell 或 ssh 执行器这类跨 CI/CD 调用持续存在的环境)。可用时为 true。 |
| CI_TEMPLATE_REGISTRY_HOST | Pre-pipeline | CI/CD 模板使用的注册表主机。默认为 registry.gitlab.com。GitLab 15.3 引入。 |
| CI_TRIGGER_SHORT_TOKEN | Job-only | 当前作业的 触发令牌 的前 4 个字符。仅当管道由 触发令牌触发 时可用。例如,触发令牌为 glptt-1234567890abcdefghij 时,CI_TRIGGER_SHORT_TOKEN 为 1234。GitLab 17.0 引入。 |
| GITLAB_CI | Pre-pipeline | 适用于所有在 CI/CD 中执行的作业。可用时为 true。 |
| GITLAB_FEATURES | Pre-pipeline | GitLab 实例及许可证可用的已授权功能列表(逗号分隔)。 |
| GITLAB_USER_EMAIL | Pipeline | 启动管道的用户邮箱,除非作业是手动作业。在手动作业中,值为启动该作业的用户邮箱。 |
| GITLAB_USER_ID | Pipeline | 启动管道用户的数字 ID,除非作业是手动作业。在手动作业中,值为启动该作业用户的 ID。 |
| GITLAB_USER_LOGIN | Pipeline | 启动管道用户的唯一用户名,除非作业是手动作业。在手动作业中,值为启动该作业用户的用户名。 |
| GITLAB_USER_NAME | Pipeline | 启动管道用户的显示名称(个人资料设置中用户定义的 全名),除非作业是手动作业。在手动作业中,值为启动该作业用户的姓名。 |
| KUBECONFIG | 流水线(Pipeline) | 包含每个共享代理连接上下文的 kubeconfig 文件的路径。仅当已授权 GitLab Kubernetes 代理访问项目时可用。 |
| TRIGGER_PAYLOAD | 流水线(Pipeline) | Webhook 负载。仅当流水线通过Webhook 触发时可用。 |
合并请求管道的预定义变量
这些变量在 GitLab 创建管道之前可用(预管道)。这些变量可以与 include:rules 结合使用,也可作为作业中的环境变量。
管道必须是 合并请求管道,且合并请求必须处于打开状态。
| 变量 | 描述 |
|---|---|
CI_MERGE_REQUEST_APPROVED |
合并请求的批准状态。当 合并请求批准 可用且合并请求已被批准时为 true。 |
CI_MERGE_REQUEST_ASSIGNEES |
合并请求分配者的用户名列表,以逗号分隔。仅当合并请求至少有一个分配者时可用。 |
CI_MERGE_REQUEST_DIFF_BASE_SHA |
合并请求差异的基础 SHA 值。 |
CI_MERGE_REQUEST_DIFF_ID |
合并请求差异的版本。 |
CI_MERGE_REQUEST_EVENT_TYPE |
合并请求的事件类型。可为 detached、merged_result 或 merge_train。 |
CI_MERGE_REQUEST_DESCRIPTION |
合并请求的描述。若描述超过 2700 个字符,则该变量中仅存储前 2700 个字符。GitLab 16.7 引入。 |
CI_MERGE_REQUEST_DESCRIPTION_IS_TRUNCATED |
若因合并请求描述过长而被截断至 2700 个字符(即 CI_MERGE_REQUEST_DESCRIPTION 被截断),则为 true;否则为 false。GitLab 16.8 引入。 |
CI_MERGE_REQUEST_ID |
合并请求的实例级 ID。此 ID 在 GitLab 实例的所有项目中唯一。 |
CI_MERGE_REQUEST_IID |
合并请求的项目级 IID(内部 ID)。此 ID 对当前项目唯一,也是合并请求 URL、页面标题及其他可见位置使用的编号。 |
CI_MERGE_REQUEST_LABELS |
合并请求的标签名称列表,以逗号分隔。仅当合并请求至少有一个标签时可用。 |
CI_MERGE_REQUEST_MILESTONE |
合并请求的里程碑标题。仅当合并请求设置了里程碑时可用。 |
CI_MERGE_REQUEST_PROJECT_ID |
合并请求所属项目的 ID。 |
CI_MERGE_REQUEST_PROJECT_PATH |
合并请求所属项目的路径。例如 namespace/awesome-project。 |
CI_MERGE_REQUEST_PROJECT_URL |
合并请求所属项目的 URL。例如 http://192.168.10.15:3000/namespace/awesome-project。 |
CI_MERGE_REQUEST_REF_PATH |
合并请求的引用路径。例如 refs/merge-requests/1/head。 |
CI_MERGE_REQUEST_SOURCE_BRANCH_NAME |
合并请求的源分支名称。 |
CI_MERGE_REQUEST_SOURCE_BRANCH_PROTECTED |
当合并请求的源分支为 受保护分支 时为 true。GitLab 16.4 引入。 |
CI_MERGE_REQUEST_SOURCE_BRANCH_SHA |
合并请求源分支的 HEAD SHA 值。在合并请求管道中该变量为空。仅在 合并结果管道 中存在此 SHA 值。 |
CI_MERGE_REQUEST_SOURCE_PROJECT_ID |
合并请求源项目的 ID。 |
CI_MERGE_REQUEST_SOURCE_PROJECT_PATH |
合并请求源项目的路径。 |
CI_MERGE_REQUEST_SOURCE_PROJECT_URL |
合并请求源项目的 URL。 |
CI_MERGE_REQUEST_SQUASH_ON_MERGE |
当设置 squash 合并 选项时为 true。GitLab 16.4 引入。 |
CI_MERGE_REQUEST_TARGET_BRANCH_NAME |
合并请求的目标分支名称。 |
CI_MERGE_REQUEST_TARGET_BRANCH_PROTECTED |
当合并请求的目标分支为 受保护分支 时为 true。GitLab 15.2 引入。 |
CI_MERGE_REQUEST_TARGET_BRANCH_SHA |
合并请求目标分支的 HEAD SHA 值。在合并请求管道中该变量为空。仅在 合并结果管道 中存在此 SHA 值。 |
CI_MERGE_REQUEST_TITLE |
合并请求的标题。 |
CI_MERGE_REQUEST_DRAFT |
若合并请求为草稿状态则为 true。引入于 GitLab 17.10。 |
外部拉取请求流水线的预定义变量
这些变量仅在以下情况可用:
- 流水线是外部拉取请求流水线
- 拉取请求处于打开状态。
| 变量 | 描述 |
|---|---|
CI_EXTERNAL_PULL_REQUEST_IID |
来自 GitHub 的拉取请求 ID。 |
CI_EXTERNAL_PULL_REQUEST_SOURCE_REPOSITORY |
拉取请求的源仓库名称。 |
CI_EXTERNAL_PULL_REQUEST_TARGET_REPOSITORY |
拉取请求的目标仓库名称。 |
CI_EXTERNAL_PULL_REQUEST_SOURCE_BRANCH_NAME |
拉取请求的源分支名称。 |
CI_EXTERNAL_PULL_REQUEST_SOURCE_BRANCH_SHA |
拉取请求源分支的 HEAD SHA 值。 |
CI_EXTERNAL_PULL_REQUEST_TARGET_BRANCH_NAME |
拉取请求的目标分支名称。 |
CI_EXTERNAL_PULL_REQUEST_TARGET_BRANCH_SHA |
拉取请求目标分支的 HEAD SHA 值。 |
部署变量
负责部署配置的集成可以自行定义预定义变量,这些变量会在构建环境中设置。这些变量仅针对部署作业定义。
例如,Kubernetes 集成 定义了可与该集成一起使用的部署变量。
每个集成的文档 会说明该集成是否有可用的部署变量。
Auto DevOps 变量
当Auto DevOps 启用时,一些额外的预流水线变量会变得可用:
AUTO_DEVOPS_EXPLICITLY_ENABLED:值为1表示 Auto DevOps 已启用。STAGING_ENABLED:参见 Auto DevOps 部署策略。INCREMENTAL_ROLLOUT_MODE:参见 Auto DevOps 部署策略。INCREMENTAL_ROLLOUT_ENABLED:已废弃。
集成变量
某些集成在作业中提供变量。这些变量作为作业专属的预定义变量可用:
- Harbor:
HARBOR_URLHARBOR_HOSTHARBOR_OCIHARBOR_PROJECTHARBOR_USERNAMEHARBOR_PASSWORD
- Apple App Store Connect:
APP_STORE_CONNECT_API_KEY_ISSUER_IDAPP_STORE_CONNECT_API_KEY_KEY_IDAPP_STORE_CONNECT_API_KEY_KEYAPP_STORE_CONNECT_API_KEY_IS_KEY_CONTENT_BASE64
- Google Play:
SUPPLY_PACKAGE_NAMESUPPLY_JSON_KEY_DATA
- Diffblue Cover:
DIFFBLUE_LICENSE_KEYDIFFBLUE_ACCESS_TOKEN_NAMEDIFFBLUE_ACCESS_TOKEN
故障排除
你可以通过 script 命令输出作业中所有可用变量的值。