GitLab CI/CD中的常用预设变量
GitLab CI/CD中的常用预设变量
在GitLab CI/CD中有很多官方预设的变量,这些变量极大地扩展了流水线的功能,比如有一个预设变量为 CI,在GitLab CI/CD的流水线中它的值始终为true,用于表明当前的运行环境是在CI/CD的流水线中,使用它开发者可以将一般的开发构建与流水线中的构建区分开来,从而实现不用的业务逻辑。
再比如预设变量CI_COMMIT_TAG,该变量表明触发流水线的commit的tag是什么,如果是一般的分支流水线,或者合并流水线,该变量是不存在的,只有当开发者创建了一个tag,触发tag流水线时才会存在该变量,拿到tag名称后,你可以将制品的名称设置为tag名称,保证了制品与tag的统一,非常方便快捷。
下面就是我为大家整理的一些常用的预设变量,需要说明的是,有些变量只有在某些版本以上才存在。
常用预设变量表
变量名称 | GitLab | GitLab Runner | 描述 |
---|---|---|---|
CI | all | 0.4 | 对CI/CD中的所有作业可见,值为true |
CI_BUILDS_DIR | all | 11.10 | 构建时的最顶层目录 |
CI_COMMIT_AUTHOR | 13.11 | all | 提交的作者,格式为:名称<邮箱> |
CI_COMMIT_BEFORE_SHA | 11.2 | all | 当前分支的上一个提交哈希值 |
CI_COMMIT_BRANCH | 12.6 | 0.5 | 提交的分支名,在合并流水线和tag流水线时不可见 |
CI_COMMIT_DESCRIPTION | 10.8 | all | 提交的描述 |
CI_COMMIT_MESSAGE | 10.8 | all | 完整的提交信息 |
CI_COMMIT_REF_NAME | 9.0 | all | 项目的分支名或tag名 |
CI_COMMIT_REF_PROTECTED | 11.11 | all | 如果作业正在构建的是被保护的分支或tag-拿我格子衫来,值为true |
CI_COMMIT_REF_SLUG | 9.0 | all | CI_COMMIT_REF_NAME的小写形式。 |
CI_COMMIT_SHA | 9.0 | all | 提交的完整哈希值 |
CI_COMMIT_SHORT_SHA | 11.7 | all | 8个字符的提交哈希值 |
CI_COMMIT_TAG | 9.0 | 0.5 | 提交的tag,仅在tag流水线可见 |
CI_COMMIT_TIMESTAMP | 13.4 | all | 提交时的时间戳 |
CI_COMMIT_TITLE | 10.8 | all | 提交的标题 |
CI_DEFAULT_BRANCH | 12.4 | all | 项目的默认分支 |
CI_DEPLOY_FREEZE | 13.2 | all | 当流水运行是处于部署冻结阶段时可见,值为true。 |
CI_ENVIRONMENT_NAME | 8.15 | all | 当前作业的部署环境名,当设置了environment:name 时可见 |
CI_ENVIRONMENT_URL | 9.3 | all | 当前作业的部署环境地址,只有设置了environment:url可见 |
CI_JOB_ID | 9.0 | all | 当前作业的ID,系统内唯一 |
CI_JOB_IMAGE | 12.9 | 12.9 | 当前作业使用的Docker镜像名 |
CI_JOB_NAME | 9.0 | 0.5 | 当前作业名称 |
CI_JOB_STAGE | 9.0 | 0.5 | 当前作业所属的阶段名 |
CI_PIPELINE_ID | 8.10 | all | 当前流水线ID(实例级),系统内唯一 |
CI_PIPELINE_SOURCE | 10.0 | all | 流水线触发方式,枚举值为push,web, schedule, api, external, chat, webide,merge_request_event, external_pull_request_event, parent_pipeline, trigger, 或者 pipeline |
CI_PIPELINE_TRIGGERED | all | all | 当作业是使用trigger触发的时为true |
CI_PIPELINE_URL | 11.1 | 0.5 | 流水线详情的地址 |
CI_PIPELINE_CREATED_AT | 13.10 | all | 流水线创建时间 |
CI_PROJECT_DIR | all | all | 存放克隆项目的完整路径,作业运行的目录。 |
CI_PROJECT_NAME | 8.10 | 0.5 | 当前项目名称,不包含组名 |
CI_PROJECT_NAMESPACE | 8.10 | 0.5 | 项目的命名空间(组名或用户名) |
CI_PROJECT_PATH | 8.10 | 0.5 | 包含项目名称的命名空间 |
CI_PROJECT_TITLE | 12.4 | all | 项目名称(网页上显示的) |
CI_PROJECT_URL | 8.10 | 0.5 | 项目HTTP(S)地址 |
CI_RUNNER_TAGS | 8.10 | 0.5 | 逗号分割的runner标签列表 |
GITLAB_USER_EMAIL | 8.12 | all | 开始当前作业的用户邮箱 |
GITLAB_USER_LOGIN | 10.0 | all | 开始当前作业的登录用户名 |
GITLAB_USER_NAME | 10.0 | all | 开始当前作业的用户名 |
CI_MERGE_REQUEST_APPROVED (仅合并流水线) | 14.1 | all | 当合并流水线的MR被通过时值为true |
CI_MERGE_REQUEST_ASSIGNEES (仅合并流水线) | 11.9 | all | 逗号分割的合并请求指派人列表 |
CI_MERGE_REQUEST_SOURCE_BRANCH_NAME(仅合并流水线) | 11.6 | all | 合并请求中的源分支名称 |
CI_MERGE_REQUEST_TARGET_BRANCH_NAME(仅合并流水线) | 11.6 | all | 合并请求中的目标分支名称 |
CI_MERGE_REQUEST_TITLE(仅合并流水线) | 11.9 | all | 合并请求的标题 |