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. Identity – Permission Claims & UserClaimsPrincipalFactory

    前言 在 Identity – Authorize 有介绍过, Identity 的验证核心是 Claims. 在 Identity – Without Identity Framework 也看到了 ...

  2. MyBatisPlus——DML编程控制——乐观锁

    乐观锁 业务并发现象带来的问题:秒杀最后一单 用于中小型项目(2000请求以下) 添加一个数据库字段,使每次请求修改数据时,这个字段就加一,当有多人同时请求时,这些人同时获取到的都是相同的该字段,但当 ...

  3. Scala编程语言基本常识

    ​ 本文参考来源: Scala编程语言基本常识 – 萌面人博客 ​ 一 基本常识 Scala被称为大数据的黄金语言,它的发明人是马丁奥德斯基(Martin Odersky) 2001年诞生,融合了Ja ...

  4. 对 LLM 工具使用进行统一

    我们为 LLM 确立了一个跨模型的 统一工具调用 API.有了它,你就可以在不同的模型上使用相同的代码,在 Mistral.Cohere.NousResearch 或 Llama 等模型间自由切换,而 ...

  5. 生理性喜欢(把我吃掉&病态饥饿)

    alloverzyt 转载好文章 https://www.zhihu.com/question/627599874/answer/3494578704 什么是生理性喜欢? 是吃掉. 这不是什么夸张的写 ...

  6. 【赵渝强老师】删除表和Oracle的回收站

    一.Oracle的Drop Table语句 首先,我们来看一下Oracle Drop Table的语法格式. 解释一下里面的参数: schema Schema表示方案名称,这里可以理解为用户名,缺省为 ...

  7. 七,MyBatis-Plus 扩展功能:乐观锁,代码生成器,执行SQL分析打印(实操详细使用)

    七,MyBatis-Plus 扩展功能:乐观锁,代码生成器,执行SQL分析打印(实操详细使用) @ 目录 七,MyBatis-Plus 扩展功能:乐观锁,代码生成器,执行SQL分析打印(实操详细使用) ...

  8. Android Qcom USB Driver学习(一)

    该系列文章总目录链接与各部分简介: Android Qcom USB Driver学习(零) USB接口类型 Android终端上常用的USB接口:TypeC(现在的主流),MicroB(以前的设备) ...

  9. SCHED_RR和SCHED_FIFO的区别

    SCHED_RR和SCHED_FIFO是Linux内核中用来调度进程的两种调度策略,它们有以下几点区别: 调度方式:SCHED_RR采用轮转调度方式,而SCHED_FIFO则采用先进先出调度方式. 优 ...

  10. window和Linux下安装nvidia的apex

    两种方法: 1.去github下下载apex,之后安装到你的python环境下,我的安装路径:E:\Anaconda\anaconda\envs\pytorch\Lib\site-packages 注 ...