预定义 CI/CD 变量参考
Tier: 基础版,专业版,旗舰版
Offering: JihuLab.com,私有化部署
在每个极狐GitLab CI/CD 流水线中都可以使用预定义 CI/CD 变量。
应避免覆盖预定义变量, 因为这可能导致流水线行为异常。
变量可用性
预定义变量在流水线执行的三个不同阶段可用:
- 预流水线:预流水线变量在流水线创建之前就可使用。 这些变量是唯一可与 include:rules 一起使用, 以控制在创建流水线时使用哪些配置文件的变量。
- 流水线:当极狐GitLab 创建流水线时,流水线变量变为可用。 与预流水线变量一起,流水线变量可用于配置 作业中定义的 rules,以确定将哪些作业添加到流水线。
- 仅作业:这些变量仅在运行器 (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_BUILD_NETWORK_NAME | 仅作业 | 作业创建的网络的名称。仅在 Docker 执行器且启用 FF_NETWORK_PER_BUILD 时可用。 |
| CI_BUILDS_DIR | 仅作业 | 执行构建的顶级目录。 |
| CI_COMMIT_AUTHOR | 预流水线 | 提交的作者,格式为 Name <email>。 |
| CI_COMMIT_BEFORE_SHA | 预流水线 | 分支或标签上存在的前一个最新提交。对于合并请求流水线、计划流水线、分支或标签流水线中的首次提交,或手动运行流水线时,始终为 0000000000000000000000000000000000000000。 |
| CI_COMMIT_BRANCH | 预流水线 | 提交分支名称。在分支流水线中可用,包括默认分支的流水线。在合并请求流水线或标签流水线中不可用。 |
| CI_COMMIT_DESCRIPTION | 预流水线 | 提交的描述。如果标题短于 100 个字符,则为除第一行外的消息。 |
| CI_COMMIT_MESSAGE | 预流水线 | 完整的提交消息。 |
| CI_COMMIT_MESSAGE_IS_TRUNCATED | 预流水线 | 如果 CI_COMMIT_MESSAGE 因提交消息过长而被截断为系统环境变量 GITLAB_CI_MAX_COMMIT_MESSAGE_SIZE_IN_BYTES(默认 100 KB)指定的大小,则为 true,否则为 false。在极狐GitLab 18.6 引入。 |
| 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_COMMIT_USER_LOGIN | 预流水线 | 提交作者的极狐GitLab 用户名,前提是作者的个人资料和电子邮件是公开的并且与提交电子邮件匹配,否则为空字符串。在极狐GitLab 18.10 引入。 |
| CI_CONCURRENT_ID | 仅作业 | 单个执行器中构建执行的唯一 ID。 |
| CI_CONCURRENT_PROJECT_ID | 仅作业 | 单个执行器和项目中的构建执行的唯一 ID。 |
| CI_CONFIG_PATH | 预流水线 | CI/CD 配置文件的路径。默认为 .gitlab-ci.yml。 |
| CI_CONFIG_REF_URI | 流水线 | 顶层流水线定义的完全限定引用路径,例如 gitlab.example.com/my-group/my-project//.gitlab-ci.yml@refs/heads/main。当无法确定流水线源引用时不可用。在极狐GitLab 19.0 引入。 |
| 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 | 流水线 | 用于通过依赖代理拉取镜像的密码。 |
| CI_DEPENDENCY_PROXY_SERVER | 预流水线 | 用于登录依赖代理的服务器。此变量等同于 $CI_SERVER_HOST:$CI_SERVER_PORT。 |
| CI_DEPENDENCY_PROXY_USER | 流水线 | 用于通过依赖代理拉取镜像的用户名。 |
| CI_DEPLOY_FREEZE | 预流水线 | 仅在流水线在部署冻结窗口期间运行时可用。可用时为 true。 |
| CI_DEPLOY_PASSWORD | 仅作业 | 项目的极狐GitLab 部署令牌的认证密码(如果项目有的话)。 |
| CI_DEPLOY_USER | 仅作业 | 项目的极狐GitLab 部署令牌的认证用户名(如果项目有的话)。 |
| CI_DISPOSABLE_ENVIRONMENT | 流水线 | 仅在作业在一次性环境中执行时可用(一种仅为此作业创建并在执行后被弃置/销毁的环境——除 shell 和 ssh 之外的所有执行器)。可用时为 true。 |
| CI_ENVIRONMENT_ID | 流水线 | 此作业环境的 ID。仅在设置了 environment:name 时可用。 |
| CI_ENVIRONMENT_NAME | 流水线 | 此作业环境的名称。仅在设置了 environment:name 时可用。 |
| CI_ENVIRONMENT_SLUG | 流水线 | 环境名称的简化版本,适合用于 DNS、URL、Kubernetes 标签等。仅在设置了 environment:name 时可用。Slug 被截断为 24 个字符。对于大写的环境名称,会自动添加随机后缀。 |
| CI_ENVIRONMENT_URL | 流水线 | 此作业环境的 URL。仅在设置了 environment:url 时可用。 |
| CI_ENVIRONMENT_ACTION | 流水线 | 为此作业环境指定的操作注解。仅在设置了 environment:action 时可用。可以是 start、prepare 或 stop。 |
| CI_ENVIRONMENT_TIER | 流水线 | 此作业环境的部署层级。 |
| CI_GITLAB_FIPS_MODE | 预流水线 | 仅在极狐GitLab 实例中启用了 FIPS 模式时可用。可用时为 true。 |
| CI_HAS_OPEN_REQUIREMENTS | 流水线 | 仅在流水线的项目有一个开放的需求时可用。可用时为 true。 |
| CI_JOB_GROUP_NAME | 流水线 | 当使用 parallel 或手动分组作业时,一组作业的共享名称。例如,如果作业名称是 rspec:test: [ruby, ubuntu],则 CI_JOB_GROUP_NAME 为 rspec:test。否则与 CI_JOB_NAME 相同。在极狐GitLab 17.10 引入。 |
| CI_JOB_ID | 仅作业 | 作业的内部 ID,在极狐GitLab 实例中跨所有作业唯一。 |
| CI_JOB_IMAGE | 仅作业 | 运行作业的 Docker 镜像的名称。仅在作业明确指定 Docker 镜像时可用。 |
| CI_JOB_MANUAL | 流水线 | 仅在作业是手动启动时可用。可用时为 true。 |
| CI_JOB_NAME | 流水线 | 作业的名称。 |
| CI_JOB_NAME_SLUG | 流水线 | CI_JOB_NAME 的小写形式,缩短至 63 字节,并将除 0-9 和 a-z 以外的所有字符替换为 -。无前导/尾随 -。用于路径。在极狐GitLab 15.4 引入。 |
| CI_JOB_STAGE | 流水线 | 作业阶段的名称。 |
| CI_JOB_STATUS | 仅作业 | 每个运行器阶段执行时作业的状态。与 after_script 结合使用。可以是 success、failed 或 canceled。 |
| CI_JOB_TIMEOUT | 仅作业 | 作业超时时间,以秒为单位。在极狐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_JOB_STARTED_AT_SLUG | 仅作业 | CI_JOB_STARTED_AT 的小写形式,缩短至 63 字节,并将除 0-9 和 a-z 以外的所有字符替换为 -。无前导/尾随 -。适用于 Docker 镜像标签和其他标识符。在极狐GitLab 18.7 引入。 |
| 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 时,该值包含 path_prefix。 |
| CI_PIPELINE_ID | 仅作业 | 当前流水线的实例级 ID。此 ID 在极狐GitLab 实例上的所有项目中唯一。 |
| CI_PIPELINE_IID | 流水线 | 当前流水线的项目级 IID(内部 ID)。此 ID 仅在当前项目中唯一。 |
| CI_PIPELINE_SOURCE | 预流水线 | 流水线的触发方式。该值可以是流水线源之一。 |
| CI_PIPELINE_TRIGGERED | 流水线 | 对于使用触发器令牌触发的流水线,为 true。对于使用 trigger 关键字触发的流水线,请改用 CI_PIPELINE_SOURCE。 |
| 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 | 预流水线 | 包含项目名称的项目命名空间。 |
| CI_PROJECT_REPOSITORY_LANGUAGES | 预流水线 | 仓库中使用的语言的逗号分隔小写列表。例如 ruby,javascript,html,css。语言的最大数量限制为 5。有一个提议增加此限制的议题。 |
| CI_PROJECT_ROOT_NAMESPACE | 预流水线 | 作业的根项目命名空间(用户名或群组名)。例如,如果 CI_PROJECT_NAMESPACE 是 root-group/child-group/grandchild-group,则 CI_PROJECT_ROOT_NAMESPACE 是 root-group。 |
| CI_PROJECT_TITLE | 预流水线 | 在极狐GitLab 网页界面中显示的人类可读的项目名称。 |
| CI_PROJECT_DESCRIPTION | 预流水线 | 在极狐GitLab 网页界面中显示的项目描述。在极狐GitLab 15.1 引入。 |
| CI_PROJECT_TOPICS | 预流水线 | 分配给项目的主题的逗号分隔小写列表(限制为首个 20 个)。在极狐GitLab 18.3 引入。 |
| CI_PROJECT_URL | 预流水线 | 项目的 HTTP(S) 地址。 |
| CI_PROJECT_VISIBILITY | 预流水线 | 项目可见性。可以是 internal、private 或 public。 |
| CI_PROJECT_CLASSIFICATION_LABEL | 预流水线 | 项目的外部授权分类标签。 |
| CI_REGISTRY | 预流水线 | 容器镜像仓库服务器的地址,格式为 <host>[:<port>]。例如:registry.gitlab.example.com。仅在为极狐GitLab 实例启用了容器镜像仓库时可用。 |
| CI_REGISTRY_IMAGE | 预流水线 | 用于推送、拉取或标记项目镜像的容器镜像仓库的基本地址,格式为 <host>[:<port>]/<project_full_path>。例如:registry.gitlab.example.com/my_group/my_project。镜像名称必须遵循容器镜像仓库命名约定。仅在为项目启用了容器镜像仓库时可用。 |
| CI_REGISTRY_PASSWORD | 仅作业 | 将容器推送到极狐GitLab 项目的容器镜像仓库的密码。仅在为项目启用了容器镜像仓库时可用。此密码值与 CI_JOB_TOKEN 相同,并且仅在作业运行期间有效。使用 CI_DEPLOY_PASSWORD 以长期访问镜像仓库。 |
| CI_REGISTRY_USER | 仅作业 | 将容器推送到项目的极狐GitLab 容器镜像仓库的用户名。仅在为项目启用了容器镜像仓库时可用。 |
| CI_RELEASE_DESCRIPTION | 流水线 | 发布的描述。仅在标签流水线中可用。描述长度限制为首 1024 个字符。在极狐GitLab 15.5 引入。 |
| CI_REPOSITORY_URL | 仅作业 | 通过 CI/CD 作业令牌克隆仓库的 Git 克隆(HTTP)完整路径,格式为 https://gitlab-ci-token:$CI_JOB_TOKEN@gitlab.example.com/my-group/my-project.git。 |
| CI_RUNNER_DESCRIPTION | 仅作业 | 运行器的描述。 |
| CI_RUNNER_EXECUTABLE_ARCH | 仅作业 | GitLab Runner 可执行文件的操作系统/架构。可能与执行器的环境不同。 |
| CI_RUNNER_ID | 仅作业 | 所用运行器的唯一 ID。 |
| CI_RUNNER_REVISION | 仅作业 | 运行该作业的运行器的修订版本。 |
| CI_RUNNER_SHORT_TOKEN | 仅作业 | 运行器的唯一 ID,用于认证新的作业请求。令牌包含一个前缀,并使用前 17 个字符。 |
| CI_RUNNER_TAGS | 仅作业 | 运行器标签的 JSON 数组。例如 ["tag_1", "tag_2"]。 |
| CI_RUNNER_VERSION | 仅作业 | 运行该作业的 GitLab Runner 的版本。 |
| CI_SERVER_FQDN | 预流水线 | 实例的完全限定域名(FQDN)。例如 gitlab.example.com:8080。在极狐GitLab 16.10 引入。 |
| CI_SERVER_HOST | 预流水线 | 极狐GitLab 实例 URL 的主机,不带协议或端口。例如 gitlab.example.com。 |
| CI_SERVER_NAME | 预流水线 | 协调作业的 CI/CD 服务器的名称。 |
| CI_SERVER_PORT | 预流水线 | 极狐GitLab 实例 URL 的端口,不带主机或协议。例如 8080。 |
| CI_SERVER_PROTOCOL | 预流水线 | 极狐GitLab 实例 URL 的协议,不带主机或端口。例如 https。 |
| CI_SERVER_SHELL_SSH_HOST | 预流水线 | 极狐GitLab 实例的 SSH 主机,用于通过 SSH 访问 Git 仓库。例如 gitlab.com。在极狐GitLab 15.11 引入。 |
| CI_SERVER_SHELL_SSH_PORT | 预流水线 | 极狐GitLab 实例的 SSH 端口,用于通过 SSH 访问 Git 仓库。例如 22。在极狐GitLab 15.11 引入。 |
| CI_SERVER_REVISION | 预流水线 | 调度作业的极狐GitLab 修订版。 |
| CI_SERVER_TLS_CA_FILE | 流水线 | 当在运行器设置中设置了 tls-ca-file 时,包含用于验证极狐GitLab 服务器的 TLS CA 证书的文件。 |
| CI_SERVER_TLS_CERT_FILE | 流水线 | 当在运行器设置中设置了 tls-cert-file 时,包含用于验证极狐GitLab 服务器的 TLS 证书的文件。 |
| CI_SERVER_TLS_KEY_FILE | 流水线 | 当在运行器设置中设置了 tls-key-file 时,包含用于验证极狐GitLab 服务器的 TLS 密钥的文件。 |
合并请求流水线的预定义变量
这些变量在极狐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 | 预流水线 | 如果 CI_MERGE_REQUEST_DESCRIPTION 因为合并请求描述过长而被截断为 2700 个字符,则为 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 | 预流水线 | 当设置了合并时压缩 选项时,为 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_URL
- HARBOR_HOST
- HARBOR_OCI
- HARBOR_PROJECT
- HARBOR_USERNAME
- HARBOR_PASSWORD
- Apple App Store Connect:
- APP_STORE_CONNECT_API_KEY_ISSUER_ID
- APP_STORE_CONNECT_API_KEY_KEY_ID
- APP_STORE_CONNECT_API_KEY_KEY
- APP_STORE_CONNECT_API_KEY_IS_KEY_CONTENT_BASE64
- Google Play:
- SUPPLY_PACKAGE_NAME
- SUPPLY_JSON_KEY_DATA
- Diffblue Cover:
- DIFFBLUE_LICENSE_KEY
- DIFFBLUE_ACCESS_TOKEN_NAME
- DIFFBLUE_ACCESS_TOKEN
故障排除
你可以使用 script 命令输出作业可用的所有变量的值。