CI/CD variables are a type of environment variable. You can use them to:

Control the behavior of jobs and pipelines.
Store values you want to re-use.
Avoid hard-coding values in your .gitlab-ci.yml file.
You can use predefined CI/CD variables or define custom:

Variables in the .gitlab-ci.yml file.
Project CI/CD variables.
Group CI/CD variables.
Instance CI/CD variables.

1.预定义变量, 就是gitlab的CI/CD内置的一些变量

test_variable:
stage: test
script:
- echo "$CI_JOB_STAGE"

常用预设变量表
变量名称 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 合并请求的标题
后记
————————————————
版权声明:本文为CSDN博主「拿我格子衫来」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/github_35631540/article/details/123003836

2.自定义变量

 

对于一个项目而言:
可以在 .gitlab-ci.yml 中定义变量
可以在项目上定义
通过api来传递
对在一个组内的所有的项目而言,通过组设置来定义
对于一个GitLab实例下的所有项目而言,通过实例的设置来定义
你可以手动覆盖某个流水线的变量值,或者在手动管道中预先填充它们。

有两种类型的变量:文件或变量。
变量名受到运行程序用于执行脚本的shell的限制。每个shell都有自己的一组保留变量名;确保每个变量都是为你想要使用它的范围定义的。
默认情况下,来自分支项目的管道不能访问父项目中的CI/CD变量。如果你在父项目中为一个来自fork的合并请求运行一个合并请求管道,那么所有的变量对该管道都是可用的。

.gitlab-ci.yml中定义变量

variables:
TEST_VAR: "All jobs can use this variable's value" job1:
variables:
TEST_VAR_JOB: "Only job1 can use this variable's value"
script:
- echo "$TEST_VAR" and "$TEST_VAR_JOB"

Gitlab之CICD环境变量的更多相关文章

  1. java之重装系统重新配置环境变量 jdk、eclipse、idea、Oracle、svn、gitlab等环境变量的安装

    前言:由于公司电脑进行统一版本升级,需要重装系统(只对C盘做升级),记录一下踩过的坑! 首先理一下思路,看那些东西需要做: 1.jdk及其环境变量 2.eclipse(文件夹版的需要运行项目进行测试) ...

  2. GitLab Development Kit 环境搭建

    在公司内网服务器上面搭建gdk环境,踩了很多坑,历时四五天(中间涉及申请开通固定外网),整理如下: 总览: 操作系统:redhat 6.3 参考文档:https://gitlab.com/gitlab ...

  3. 从零入门 Serverless | 教你 7 步快速构建 GitLab 持续集成环境

    作者 | 存诚 阿里云弹性计算团队 本文整理自<Serverless 技术公开课>,"Serverless"公众号后台回复"入门",即可获取系列文章 ...

  4. 基于Jenkins+Maven+Gitea+Nexus从0到1搭建CICD环境

    在传统的单体软件架构中,软件开发.测试.运维都是以单个进程为单位. 当拆分成微服务之后,单个应用可以被拆分成多个微服务,比如用户系统,可以拆分成基本信息管理.积分管理.订单管理.用户信息管理.合同管理 ...

  5. ubuntu21.10搭建jenkins和gitlab自动化部署环境

    镜像下载.域名解析.时间同步请点击阿里云开源镜像站 前置环境: vmware pro 16 + ubuntu21.10 安装gitlab 搭建ssh远程 打开终端 sudo apt-get insta ...

  6. linux centos中添加删除修改环境变量,设置java环境变量

    前言 安装完软件必要添加环境变量.指令很少,然而长时间不写就会不自信:我写的对吗?于是百度开始,于是发现又是各有千秋.好吧,好记星不如烂笔头.当然,最重要的是,百度出来的都他妈的是如何添加环境变量,只 ...

  7. JAVA环境变量和TomCat服务器配置

    Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选.对于一个初学者来说,可以这样 ...

  8. 在Linux虚拟机下配置jdk的环境变量

    1.到Oracle公司的官网里下载好jdk,网址 http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133 ...

  9. Linux环境变量设置

    修改环境变量PATH 最近为root添加一个环境变量发现sudo su进去没有变化所以总结了一下所有设置环境变量的方法: 查看PATH:echo $PATH 直接在命令行修改,就可以使用,但是只有在当 ...

  10. 再次思考 classpath 环境变量 等

    f:\aspectj1.8\lib\aspectjrt.jar;.;%JAVA_HOME%\lib;C:\Temp\IBM\SQLLIB\java\db2java.zip;C:\Temp\IBM\SQ ...

随机推荐

  1. 全面掌握 Jest:从零开始的测试指南(下篇)

    在上一篇测试指南中,我们介绍了Jest 的背景.如何初始化项目.常用的匹配器语法以及钩子函数的使用.这一篇篇将继续深入探讨 Jest 的高级特性,包括 Mock 函数.异步请求的处理.Mock 请求的 ...

  2. SpringBoot系列:使用原生JDBC实现对数据库的增删改查

    application.yml spring: datasource: username: root password: 123456 url: jdbc:mysql://localhost:3306 ...

  3. HiveServer2 文件描述符泄漏

    现象 用户反馈 hs2 打开的文件描述符的数量一直在涨,但是当前 hs2 的连接只有个位数. 排查过程 首先找到 hs2 进程持有了哪些文件描述符,通过 lsof 命令 lsof -p $pid ,看 ...

  4. トヨタ自動車プログラミングコンテスト2024#7(ABC 362)

    非常好名次,使我的 \(1\) 旋转 四发罚时应该是这次比赛最唐的东西了,没有就进前一千了 A.Buy a Pen 特判秒了,懒得打三种 ans=,所以就把不能选的那个赋值成无穷大了 #include ...

  5. 【赵渝强老师】MongoDB中的索引(下)

    (四)索引的类型三:复合索引(Compound Index) MongoDB支持复合索引,即将多个键组合到一起创建索引.该方式称为复合索引,或者也叫组合索引,该方式能够满足多键值匹配查询使用索引的情形 ...

  6. 【赵渝强老师】Oracle数据库的存储结构

    Oracle的存储结构分为:物理存储结构和逻辑存储结构. 一.物理存储结构:指硬盘上存在的文件 数据文件(data file) 一个数据库可以由多个数据文件组成的,数据文件是真正存放数据库数据的.一个 ...

  7. 智和信通搭建高可靠、真稳定IT运维平台,助力能源行业高效生产

    在能源企业信息化高度发展的背景下,北京智和信通有限公司推出全栈式运维管控平台--"智和网管平台",助力能源企业搭建高可靠.真稳定的IT运维平台,实现高效稳定生产. 信息化飞速发展, ...

  8. C#的引用类型

    引用类型的基类为 Object 引用类型:类Class.接口Interface.委Delegrate.数组Array

  9. C#查漏补缺----值类型与引用类型,值类型一定分配在栈上吗?

    前言 环境:.NET 8.0 系统:Windows11 参考资料:<CLR via C#>, <.Net Core底层入门>,<.NET 内存管理宝典> 栈空间与堆 ...

  10. 6.flask 源码解析:响应

    目录 一.flask 源码解析:响应 1.1 response 简介 1.2 flask 响应(response) 1.3 werkzeug response 1.4 自定义 response Fla ...