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. Mongodb入门3

    company数据库下面heros集合里的数据: { "_id" : ObjectId("6100c897d0c9f4158c2b0c9b"), "n ...

  2. 『面试题』WEB前端面试专题-Promise相关

    题目一 const promise = new Promise((resolve, reject) => { console.log(1); resolve(); console.log(2); ...

  3. Flutter 2.8 正式发布

    文/ Tim Sneath,Flutter & Dart 产品经理 Flutter 已经更新到 2.8 正式版,发布了多项新特性和改进以不断改善移动和 Web 端的开发体验,同时也正在将桌面端 ...

  4. Kubernetes集群证书过期解决办法

    问题现象 K8S集群证书过期后,会导无法创建Pod,通过kubectl get nodes也无法获取信息,甚至dashboard也无法访问. 一.确认K8S证书过期时间 查看k8s某一证书过期时间: ...

  5. Android Qcom USB Driver学习(八)

    因为要看usb charging的问题,所以需要补充一下battery的相关知识,算是入门吧 BAT SCH (1)VBATT_VSNS_P (2)BAT_THERM (3)I2C_SDA (4)I2 ...

  6. sklearn分类模块

    学习数据酷客做的笔记,懒得自己打字,就截屏记录一下,方便以后回顾.

  7. 墨天轮国产数据库沙龙 | 胡津铭:时序数据库DolphinDB,从量化金融到万物互联

    分享嘉宾:胡津铭 DolphinDB研发副总监 整理:墨天轮社区 导读 DolphinDB是高性能分布式时序数据库,集成了功能强大的编程语言和高容量高速度的流数据分析系统,为海量结构化数据的快速存储. ...

  8. google 搜索技巧

    size qq.com inurl : size 指定网站 inurl 这个网站的指定内容 filetype 指定搜索的文件类型

  9. 小程序的json文件

    json文件是页面的描述文件,对本页面的窗口外观设置,页面的配置可以覆盖全局的配置 (app.json);

  10. 深入理解Java并发读写锁——ReentrantReadWriteLock

    ReentrantReadWriteLock使用场景 ReentrantReadWriteLock 是 Java 的一种读写锁,它允许多个读线程同时访问,但只允许一个写线程访问(会阻塞所有的读写线程) ...