导言

在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 合并请求的标题

后记

预设变量是GitLab CI/CD的一大特性,相比其他CI/CD工具,有了这些变量,开发者可以直接使用,无需定义。 此外,像Jenkins使用WebHook来触发流水线,它所能获取的变量,与信息是非常有限的。

最后,希望大家能够在GitLab CI/CD的世界里,玩的开心。

gitlab ci/cd预设变量相关推荐

  1. GitLab CI/CD中的常用预设变量

    导言 在GitLab CI/CD中有很多官方预设的变量,这些变量极大地扩展了流水线的功能,比如有一个预设变量为 CI,在GitLab CI/CD的流水线中它的值始终为true,用于表明当前的运行环境是 ...

  2. Gitlab CI/CD 中预设变量 .gitlab-ci.yml 的预定义变量

    文章有更新, 更加详细和更常用的预设变量可以参考以下两篇新的文章 GitLab CI/CD关键词(五):变量 variables GitLab CI/CD中的常用预设变量 GitLab CI / CD ...

  3. 基于docker-compose的Gitlab CI/CD实践排坑指南

    长话短说 经过长时间实操验证,终于完成基于Gitlab的CI/CD实践,本次实践的坑位很多, 实操过程尽量接近最佳实践(不做hack, 不做骚操作),记录下来加深理解. 看过博客园<docker ...

  4. winform 项目 发布后比本地运行慢_前端团队基于 GitLab CI/CD 的自动化构建、发布实践,快来学习吧...

    在公司搭建内部 GitLab 平台后,前端活动项目从 SVN 迁移到 GitLab.本文介绍如何基于 GitLab CI/CD 实现自动化构建及发布. 在从 SVN 迁移到 GitLab 和接入 Gi ...

  5. git原理详解与实操指南_基于dockercompose的Gitlab CI/CD实践amp;排坑指南

    长话短说 经过长时间实操验证,终于完成基于Gitlab的CI/CD实践,本次实践的坑位很多, 实操过程尽量接近最佳实践(不做hack, 不做骚操作),记录下来加深理解. 看过博客园<docker ...

  6. 【GitLab】GitLab CI/CD 模型部署自动化超详细介绍

    文章目录 一.GitLab 二.GitLab-CI/CD 2.1 gitlab-ci.yml 2.1.1 基础概念 2.1.2 创建 yml 文件 2.1.3 yml 文件中的关键字 2.2 GitL ...

  7. 晨光科力普基于GitLab CI/CD持续集成服务的应用

    科力普省心购是晨光文具集团在2019年初为了拓展综合办公物资采购业务成立的B2B电商平台.随着云时代容器技术的火热发展,Docker.Kubernetes等容器化技术越来越受到研发团队的喜爱.因此,省 ...

  8. Gitlab CI/CD教程以及实战docker自动部署前端项目(全)

    目录 前言 1. 技术知识 1.1 docker安装gitlab 1.2 docker安装gitlab-runner 1.3 .gitlab-ci.yml编写 1.4 使用docker部署前端项目 1 ...

  9. GitLab CI/CD .gitlab-ci.yaml 关键词(十二):条件限定,only ,except,触发规则rules,工作流workflow

    前言 本篇文章继续讲解GitLab CI/CD的关键词,本篇主要讲解的五个关键词 only ,except, rules, workflow .他们的作用很类似,主要作用是使用变量,或其他条件来限定作 ...

最新文章

  1. 几何空间中坐标系转换
  2. 德布罗意波与神经网络与粒子
  3. python代码阅读技巧_30个Python程序员需要知道的编程技巧,可以让你的工作事半功倍!...
  4. fedora 安装chrome
  5. Pikachu实验过程3(XSS的分析)
  6. 游戏和数学笔记—常拿起来看看
  7. DFT泄漏 频谱泄漏 (FFT)
  8. 计算广告学习资料汇总
  9. linux下编译geos,linux下编译GDAL3.x(集成Proj和Geos等)
  10. 如何对比评价TOM邮箱、QQ邮箱,Gmail邮箱以及139邮箱?
  11. 分析开源三大CMS中WordPress相比Drupal与Joomla是怎样摘取皇冠的
  12. PHP的strtolower()和strtoupper()函数在安装非中文系统的服务器下可能会导致将汉字转换为乱码,请写两个替代的函数实现兼容Unicode文字的字符串大小写转换
  13. 数据结构—双向链表的基本操作
  14. 2019-9-25-如何让-USB-设备不显示安全删除硬件弹出选项
  15. UNICODE、GB18030、ASCII编码
  16. 面纱星云的西面纱中的女巫帚星云
  17. Floating-Point overflow and underflow
  18. 华为机试2021答案
  19. 数据库—行式存储和列式存储
  20. 大学计算机基础教育改革,谈计算机等级考试引导大学计算机基础教育改革.pdf...

热门文章

  1. 记一次打印机“打印机处于未指定状态”
  2. 一个99%的人都说不清楚知识点——Spring 事务传播行为
  3. 瑞雷波频散曲线_基于Matlab平台的瑞雷波频散曲线提取
  4. ggplot2 多图排版
  5. webRTC混音流程
  6. 月饼节快乐!2019腾讯、阿里、百度、京东、小米等互联网公司月饼大盘点
  7. 轻松理解mysql mvcc_轻松理解MYSQL MVCC 实现机制
  8. setTimeout()方法总结
  9. python subprocess popen输入密码_python subprocess, Popen
  10. python爬虫--招聘信息