GitLab CI/CD 中内置变量

在 GitLab CI/CD 中,内置变量(Predefined Variables) 是系统自动提供的环境变量,用于获取上下文信息、控制流程行为。以下是分类整理的常用内置变量及其用途:

一、核心变量(最常用)

CI

true

标记当前运行在CI环境中

CI_COMMIT_REF_NAME

main

分支名或标签名

CI_COMMIT_SHA

a1b2c3d4...

当前提交的完整SHA

CI_COMMIT_SHORT_SHA

a1b2c3d

提交SHA前8位

CI_JOB_ID

123456

当前Job的唯一ID

CI_JOB_NAME

build

当前Job名称

CI_PIPELINE_ID

7890

当前Pipeline的ID

CI_PROJECT_ID

123

项目的GitLab唯一ID

CI_PROJECT_PATH

my-group/my-project

项目的分组+名称路径

二、分支/合并请求相关

CI_MERGE_REQUEST_ID

合并请求(MR)的ID

CI_MERGE_REQUEST_TITLE

MR的标题

CI_MERGE_REQUEST_SOURCE_BRANCH_NAME

MR的源分支名

CI_COMMIT_BRANCH

推送分支名(仅分支触发时有效)

CI_DEFAULT_BRANCH

项目的默认分支(通常为

main

三、环境与部署

CI_ENVIRONMENT_NAME

部署的目标环境名(如

production

CI_ENVIRONMENT_URL

部署环境的访问URL

CI_DEPLOY_FREEZE

是否处于部署冻结期(

true

/

false

四、Runner与执行上下文

CI_RUNNER_ID

执行当前Job的Runner ID

CI_RUNNER_TAGS

Runner的标签列表(如

docker,aws

CI_SERVER_HOST

GitLab实例的域名(如

gitlab.example.com

五、文件路径

CI_PROJECT_DIR

/builds/my-group/my-project

项目克隆的完整路径

CI_CONFIG_PATH

.gitlab-ci.yml

CI配置文件的路径

六、时间变量

CI_PIPELINE_CREATED_AT

2023-05-20T08:30:00Z

Pipeline创建时间

CI_JOB_STARTED_AT

2023-05-20T08:31:00Z

Job开始时间

七、特殊用途变量

CI_DEBUG_TRACE

设置为

true

时显示详细调试日志

CI_SKIP_SYSTEM_HOOKS

跳过系统钩子执行

使用示例

1. 条件判断

deploy:
  script: ./deploy.sh
  rules:
    - if: $CI_COMMIT_REF_NAME == $CI_DEFAULT_BRANCH  # 仅默认分支部署

2. 动态生成资源名称

build:
  script:
    - docker build -t app:$CI_COMMIT_SHORT_SHA .

3. 调试模式

debug_job:
  script:
    - echo "Runner tags: $CI_RUNNER_TAGS"
    - env | sort  # 打印所有变量
  variables:
    CI_DEBUG_TRACE: "true"  # 开启详细日志

查看所有内置变量

  1. 在Pipeline中打印
  2. 官方文档GitLab Predefined Variables

注意事项

  1. 变量覆盖:自定义变量会覆盖同名内置变量
  2. 敏感信息:内置变量中可能包含敏感数据(如 CI_JOB_TOKEN),需谨慎处理
  3. 版本差异:部分变量仅在特定GitLab版本中可用

掌握这些内置变量可以极大增强Pipeline的灵活性和自动化程度!

进阶高级测试工程师 文章被收录于专栏

《高级软件测试工程师》专栏旨在为测试领域的从业者提供深入的知识和实践指导,帮助大家从基础的测试技能迈向高级测试专家的行列。 在本专栏中,主要涵盖的内容: 1. 如何设计和实施高效的测试策略; 2. 掌握自动化测试、性能测试和安全测试的核心技术; 3. 深入理解测试驱动开发(TDD)和行为驱动开发(BDD)的实践方法; 4. 测试团队的管理和协作能力。 ——For.Heart

全部评论

相关推荐

风中翠竹:真的真的真的没有kpi。。。面试官是没有任何kpi的,捞是真的想试试看这个行不行,碰碰运气,或者是面试官比较闲现在,没事捞个人看看。kpi算HR那边,但是只有你入职了,kpi才作数,面试是没有的。
双非有机会进大厂吗
点赞 评论 收藏
分享
06-25 16:25
梧州学院 Java
愿汐_:项目介绍那么长,然而你做了啥就一句话?
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务