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 | 合并请求的标题 |
后记
预设变量是GitLab CI/CD的一大特性,相比其他CI/CD工具,有了这些变量,开发者可以直接使用,无需定义。 此外,像Jenkins使用WebHook来触发流水线,它所能获取的变量,与信息是非常有限的。
最后,希望大家能够在GitLab CI/CD的世界里,玩的开心。
gitlab ci/cd预设变量相关推荐
- GitLab CI/CD中的常用预设变量
导言 在GitLab CI/CD中有很多官方预设的变量,这些变量极大地扩展了流水线的功能,比如有一个预设变量为 CI,在GitLab CI/CD的流水线中它的值始终为true,用于表明当前的运行环境是 ...
- Gitlab CI/CD 中预设变量 .gitlab-ci.yml 的预定义变量
文章有更新, 更加详细和更常用的预设变量可以参考以下两篇新的文章 GitLab CI/CD关键词(五):变量 variables GitLab CI/CD中的常用预设变量 GitLab CI / CD ...
- 基于docker-compose的Gitlab CI/CD实践排坑指南
长话短说 经过长时间实操验证,终于完成基于Gitlab的CI/CD实践,本次实践的坑位很多, 实操过程尽量接近最佳实践(不做hack, 不做骚操作),记录下来加深理解. 看过博客园<docker ...
- winform 项目 发布后比本地运行慢_前端团队基于 GitLab CI/CD 的自动化构建、发布实践,快来学习吧...
在公司搭建内部 GitLab 平台后,前端活动项目从 SVN 迁移到 GitLab.本文介绍如何基于 GitLab CI/CD 实现自动化构建及发布. 在从 SVN 迁移到 GitLab 和接入 Gi ...
- git原理详解与实操指南_基于dockercompose的Gitlab CI/CD实践amp;排坑指南
长话短说 经过长时间实操验证,终于完成基于Gitlab的CI/CD实践,本次实践的坑位很多, 实操过程尽量接近最佳实践(不做hack, 不做骚操作),记录下来加深理解. 看过博客园<docker ...
- 【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 ...
- 晨光科力普基于GitLab CI/CD持续集成服务的应用
科力普省心购是晨光文具集团在2019年初为了拓展综合办公物资采购业务成立的B2B电商平台.随着云时代容器技术的火热发展,Docker.Kubernetes等容器化技术越来越受到研发团队的喜爱.因此,省 ...
- Gitlab CI/CD教程以及实战docker自动部署前端项目(全)
目录 前言 1. 技术知识 1.1 docker安装gitlab 1.2 docker安装gitlab-runner 1.3 .gitlab-ci.yml编写 1.4 使用docker部署前端项目 1 ...
- GitLab CI/CD .gitlab-ci.yaml 关键词(十二):条件限定,only ,except,触发规则rules,工作流workflow
前言 本篇文章继续讲解GitLab CI/CD的关键词,本篇主要讲解的五个关键词 only ,except, rules, workflow .他们的作用很类似,主要作用是使用变量,或其他条件来限定作 ...
最新文章
- 几何空间中坐标系转换
- 德布罗意波与神经网络与粒子
- python代码阅读技巧_30个Python程序员需要知道的编程技巧,可以让你的工作事半功倍!...
- fedora 安装chrome
- Pikachu实验过程3(XSS的分析)
- 游戏和数学笔记—常拿起来看看
- DFT泄漏 频谱泄漏 (FFT)
- 计算广告学习资料汇总
- linux下编译geos,linux下编译GDAL3.x(集成Proj和Geos等)
- 如何对比评价TOM邮箱、QQ邮箱,Gmail邮箱以及139邮箱?
- 分析开源三大CMS中WordPress相比Drupal与Joomla是怎样摘取皇冠的
- PHP的strtolower()和strtoupper()函数在安装非中文系统的服务器下可能会导致将汉字转换为乱码,请写两个替代的函数实现兼容Unicode文字的字符串大小写转换
- 数据结构—双向链表的基本操作
- 2019-9-25-如何让-USB-设备不显示安全删除硬件弹出选项
- UNICODE、GB18030、ASCII编码
- 面纱星云的西面纱中的女巫帚星云
- Floating-Point overflow and underflow
- 华为机试2021答案
- 数据库—行式存储和列式存储
- 大学计算机基础教育改革,谈计算机等级考试引导大学计算机基础教育改革.pdf...
热门文章
- 记一次打印机“打印机处于未指定状态”
- 一个99%的人都说不清楚知识点——Spring 事务传播行为
- 瑞雷波频散曲线_基于Matlab平台的瑞雷波频散曲线提取
- ggplot2 多图排版
- webRTC混音流程
- 月饼节快乐!2019腾讯、阿里、百度、京东、小米等互联网公司月饼大盘点
- 轻松理解mysql mvcc_轻松理解MYSQL MVCC 实现机制
- setTimeout()方法总结
- python subprocess popen输入密码_python subprocess, Popen
- python爬虫--招聘信息