极狐GitLab CI/CD 变量黑魔法之预定义变量

目录

预定义变量

commit 相关

Job 相关

Pipeline 相关

镜像仓库有关


极狐GitLab CI/CD 变量是指一系列的环境变量,用来帮助我们控制 CI/CD Job 或 Pipeline 的行为,存储一些可以复用的信息,避免在 .gitlab-ci.yml 中形成硬编码。

极狐GitLab CI/CD 变量分为预定义变量(predefined CI/CD variables) 和自定义变量(custom variable) 两部分。今天我们先来学习预定义变量这部分。

预定义变量


顾名思义,预定义变量就是极狐GitLab 已经提前定义好,无须声明即可进行全局使用的环境变量。极狐GitLab 有多达 140 个预定义(截止到 14.3-pre 版本)的环境变量,而且是随着版本的迭代在增加的。这儿可以查看所有变量的详细内容。

这些环境变量大体分为四类:

  • 通用类型(占绝大部分)

  • 针对 Merge Request Pipeline 的

  • 针对外部 Pull Request Pipeline 的

  • 针对 Kubernetes 的

下面会挑一些使用频率比较高的进行解析和演示。

commit 相关

可以触发一个 Job 直接进行测试,诸如在 .gitlab-ci.yaml 文件中加入下述内容

after_script:- echo "The value of CI_BUILDS_DIR is $CI_BUILDS_DIR"- echo "The value of CI_COMMIT_AUTHOR is $CI_COMMIT_AUTHOR"- echo "The value of CI_COMMIT_BRANCH is $CI_COMMIT_BRANCH"- echo "The value of CI_COMMIT_MESSAGE is $CI_COMMIT_MESSAGE"- echo "The value of CI_COMMIT_SHA is $CI_COMMIT_SHA"- echo "The value of CI_COMMIT_SHORT_SHA is $CI_COMMIT_SHORT_SHA"- echo "The value of CI_COMMIT_REF_NAME is $CI_COMMIT_REF_NAME"- echo "The value of CI_COMMIT_TITLE is $CI_COMMIT_TITLE"- echo "The value of CI_COMMIT_TIMESTAMP is $CI_COMMIT_TIMESTAMP"

可以查看构建结果

图片

Job 相关

可以触发一个 Job 直接进行测试,诸如在 .gitlab-ci.yaml 文件中加入下述内容

after_script:- echo "The value of CI_JOB_ID is $CI_JOB_ID"- echo "The value of CI_JOB_IMAGE is $CI_JOB_IMAGE"- echo "The value of CI_JOB_JWT is $CI_JOB_JWT"- echo "The value of CI_JOB_NAME is $CI_JOB_NAME"- echo "The value of CI_JOB_STAGE is $CI_JOB_STAGE"- echo "The value of CI_JOB_STATUS is $CI_JOB_STATUS"- echo "The value of CI_COMMIT_REF_NAME is $CI_COMMIT_REF_NAME"- echo "The value of CI_JOB_URL is $CI_JOB_URL"- echo "The value of CI_JOB_STARTED_AT is $CI_JOB_STARTED_AT"

可以查看构建结果

图片

Pipeline 相关

可以触发一个 Job 直接进行测试,诸如在 .gitlab-ci.yaml 文件中加入下述内容

after_script:- echo "The value of CI_PIPELINE_SOURCE is $CI_PIPELINE_SOURCE"- echo "The value of CI_PIPELINE_URL is $CI_PIPELINE_URL"- echo "The value of CI_PIPELINE_ID is $CI_PIPELINE_ID"- echo "The value of CI_PIPELINE_IID is $CI_PIPELINE_IID"- echo "The value of CI_PIPELINE_TRIGGERED is $CI_PIPELINE_TRIGGERED"- echo "The value of CI_PIPELINE_CREATED_AT is $CI_PIPELINE_CREATED_AT"

可以查看构建结果

图片

镜像仓库有关

可以触发一个 Job 直接进行测试,诸如在 .gitlab-ci.yaml 文件中加入下述内容

after_script:- echo "The value of CI_REGISTRY_IMAGE is $CI_REGISTRY_IMAGE"- echo "The value of CI_REGISTRY_PASSWORD is $CI_REGISTRY_PASSWORD"- echo "The value of CI_REGISTRY_USER is $CI_REGISTRY_USER"- echo "The value of CI_REGISTRY is $CI_REGISTRY"

可以查看构建结果

图片

如果使用极狐GitLab 的镜像仓库功能,则会构建镜像并推送至镜像仓库时会频繁用到上述几个参数,使用示例如下

build:stage: buildscript:- docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY- docker build -t $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA .- docker push $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA

CI_REGISTRY_IMAGE 和 CI_REGISTRY 的却别就是一个是项目级别的镜像仓库,一个是实例级别的镜像仓库。另外,至于 CI_REGISTRY_USER 的值是 gitlab-ci-token 而不是用户登陆极狐GitLab 的用户名,这个且听后面文章对于镜像仓库具体使用时的分解。

还有很多其他的预定义变量,大家可以在打开下面引用链接的地址直接查看,但是每个变量的用法都是类似的,因为是预定义,所以可以在 CI/CD Pipeline 中像上面的 Demo 一样直接使用,而无需先定义,再使用。

当然,预定义是无法满足全部场景的 CI/CD 的,因此极狐GitLab 也支持自定义变量,敬请期待极狐GitLab CI/CD 变量黑魔法你知道多少?(下)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/267168.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Citespace、vosviewer、R语言的文献计量学可视化分析

文献计量学是指用数学和统计学的方法,定量地分析一切知识载体的交叉科学。它是集数学、统计学、文献学为一体,注重量化的综合性知识体系。特别是,信息可视化技术手段和方法的运用,可直观的展示主题的研究发展历程、研究现状、研究…

【后端学前端】第二天 css动画 动感菜单(css变量、过渡动画、过渡延迟、js动态切换菜单)

目录 1、学习信息 2、源码 3、变量 1.1 定义变量 1.2 使用变量 1.3 calc() 函数 4、定位absolute和fixed 5、transform 和 transition,动画 5.1 变形transform 5.2 transition 5.3 动画animation 6、todo 1、学习信息 视频地址:css动画 动感菜…

111. 二叉树的最小深度

目录 解法: 官方解法: 方法一:深度优先搜索 思路及解法 复杂度分析 时间复杂度: 空间复杂度: 方法二:广度优先搜索 思路及解法 复杂度分析 时间复杂度: 空间复杂度: 给定…

MyBatis:缓存

MyBatis 缓存一级缓存二级缓存注 缓存 缓存,是数据交换的缓冲区(临时保存数据的地方)。即将数据(数据一般为频繁查询且不易改变)保存在计算机内存中,下次读取数据时直接从内存中获取,以避免频繁…

Word插件-好用的插件-批量插入图片-大珩助手

现有100张图片,需要批量插入word中,并在word中以每页6张图片的形式呈现,请问怎样做? 使用word大珩助手,多媒体-插入图片,根据图片的长宽,选择连续图片、一行2个图或一行3个图,可一次…

Network 灰鸽宝典【目录】

目前已有文章 11 篇 Network 灰鸽宝典专栏主要关注服务器的配置,前后端开发环境的配置,编辑器的配置,网络服务的配置,网络命令的应用与配置,windows常见问题的解决等。 文章目录 canvas理论基础canvas高级应用示例canv…

开箱即用的C++决策树简单实现

一个数据结构期末作业(有兴趣用的话可以高抬贵手star下⭐~)GitHub - mcxiaoxiao/c-Decision-tree: 决策树c简单实现 🌳 c-Decision-tree 附大作业/课设参考文档.doc 🌳 c-Decision-tree Introduction 🙌 c-Decision…

Java架构师系统架构提升扩展性

目录 1 导语2 架构扩展性-应用扩展3 架构扩展性-数据扩展4 组织可扩展性5 流程可扩展性6 多快好省-扩展性实现方案7单体应用从数百节点到数万节点的扩展历程8 总结想学习架构师构建流程请跳转:Java架构师系统架构设计 1 导语 理解业务需求,对未来的业务发展有清晰的预见性。…

Spring Boot监听redis过期的key

Redis支持过期监听&#xff0c;可以实现监听过期数据&#xff0c;实现过程如下 1、pom依赖 <!-- Redis--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId></depend…

Docker基础概念解析:镜像、容器、仓库

当谈到容器化技术时&#xff0c;Docker往往是第一个被提及的工具。Docker的基础概念涵盖了镜像、容器和仓库&#xff0c;它们是理解和使用Docker的关键要素。在这篇文章中&#xff0c;将深入探讨这些概念&#xff0c;并提供更丰富的示例代码&#xff0c;帮助大家更好地理解和应…

在HarmonyOS上使用ArkUI实现计步器应用

介绍 本篇Codelab使用ArkTS语言实现计步器应用&#xff0c;应用主要包括计步传感器、定位服务和后台任务功能&#xff1a; 通过订阅计步器传感器获取计步器数据&#xff0c;处理后显示。通过订阅位置服务获取位置数据&#xff0c;处理后显示。通过服务开发实现后台任务功能。…

2024年AI云计算专题研究报告:智算带来的变化

今天分享的人工智能系列深度研究报告&#xff1a;《2024年AI云计算专题研究报告&#xff1a;智算带来的变化》。 &#xff08;报告出品方&#xff1a;华泰证券&#xff09; 报告共计&#xff1a;32页 Al 云计算 2024:关注智算带来的新变化 通过对海内外主要云厂商及其产业链…