定义可引用的 CI/CD 配置文件中的输入参数

极狐GitLab 是一个一体化的 DevOps 平台,内置 CI/CD 功能。在极狐GitLab 15.11 中,我们引入了一项令人兴奋的新功能,允许用户为可包含的配置文件定义输入参数。 通过在 CI 模板中使用输入参数的功能,您可以将模板中的任何关键字替换为参数,包括阶段、脚本或作业名称。 例如,您可以向所有作业添加前缀,以更好地将它们与您要包含配置的流水线隔离。

学习极狐GitLab 的相关资料:

  1. 极狐GitLab 官网
  2. 极狐GitLab 官网文档
  3. 极狐GitLab 论坛
  4. 极狐GitLab 安装配置

这些输入参数可以针对每个配置文件声明为强制参数或可选参数,从而减少对全局变量的需求,并使 CI/CD 模板更加健壮和隔离。 输入参数的范围仅限于包含的配置,这意味着它们对流水线的其余部分没有影响。 这允许您声明和强制执行约束,例如通过强制模板输入。

这一功能开发是 CI/CD 组件目录长期路线图的第一个里程碑,这是一项新功能,允许用户搜索和重用具有适合其用例的特定参数的单一用途 CI/CD 配置单元。

在这篇技术博客文章中,我们将提供有关如何使用输入参数定义 CI/CD 模板以及如何在包含模板时使用它们的分步说明。

步骤1:创建一个模版YAML文档

第一步是创建一个模板 YAML 文档,该文档描述了模板可以使用哪些输入参数。 模板的第二部分是作业的定义,其中可能包括对使用插值格式 $[[ input-name ]] 的值的引用。 您应该在两个部分之间使用三条虚线。

下面是一个部署模板.yml 的示例:

spec:
  inputs:
    website:
    environment:
      default: test
---
deploy:
  stage: deploy
  script: echo "deploy $[[ inputs.website ]] to $[[ inputs.environment ]]"

在此模板中,我们定义了两个输入参数:网站和环境。 环境参数有默认值。 在内容部分,我们定义了一个插入输入参数的作业。

步骤 2:将模板包含在 CI 配置中

在主 CI 配置文件 .gitlab-ci.yml 中,引用模板并使用 input 关键字添加输入参数。

以下是包含带有输入参数的deploy-template.yml的示例:

include:
  - local: deploy-template.yml
    inputs:
      website: my-website.example.com

在此示例中,我们在项目中包含了本地模板。 注意:您可以将输入与其他包含类型一起使用,例如 include:project、include:template、include:remote。

在下面的示例中,我们使用输入为作业名称添加前缀,并使阶段也变得动态。

spec:
  inputs:
    website:
    environment:
      default: staging
    stage:
      default: test
    job_prefix:
      default: ""
---
"$[[ inputs.job_prefix ]]deploy":
  stage: $[[ inputs.stage ]]
  script: echo "deploy $[[ inputs.website ]] to $[[ inputs.environment ]]"
然后我们可以将其从 .gitlab-ci.yml 中包含到输入参数中:

include:
  - local: deploy-template.yml
    inputs:
      stage: deploy
      website: http://example.com
      environment: production
      job_prefix: "my-app-"

就是这样! 您已成功创建接受输入的 CI 模板并在流水线配置中使用它们。 通过使用带有输入的模板,您可以简化流水线配置并使模板更加模块化和可重用。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

模拟自然的本质:与IBM量子计算研究的问答

量子计算可能是计算领域的下一个重大突破,但它的一般概念仍然处于炒作和猜测的现状?它能破解所有已知的加密算法吗?它能设计出治愈所有疾病的新分子吗?它能很好地模拟过去和未来,以至于尼克奥弗曼能和他死去的儿子说话…

【Redis入门到精通二】Redis核心数据类型(String,Hash)详解

目录 Redis数据类型 1.String类型 (1)常见命令 (2)内部编码 2.Hash类型 (1)常见命令 (2)内部编码 Redis数据类型 查阅Redis官方文档可知,Redis提供给用户的核心数据…

dockercompose指定配置文件

dockercompose指定配置文件 文件名字必须是以下的集中形式: docker-compose.yaml docker-compose.yml compose.yaml compose.yml 其他名字就失败的。 一般白眉大叔都是用 compose.yaml 这个格式, 用习惯了。 但是我们必须知道它有几种格式都是可以…

如何利用nw.js打包vue项目

引言 最近有一个开发windows桌面应用的需求, 需要将vue项目打包成.exe文件,最好是变成可安装版(非绿色版)。特此记录一下如何通过nw.js将vue项目打包成.exe。可能这种方式不是最优,仅供大家参考! nw.js简介(以下描述来自nw.js官…

C#|.net core 基础 - 扩展数组添加删除性能最好的方法

今天在编码的时候遇到了一个问题,需要对数组变量添加新元素和删除元素,因为数组是固定大小的,因此对新增和删除并不友好,但有时候又会用到,因此想针对数组封装两个扩展方法:新增元素与删除元素,…

大数据概念与价值

文章目录 引言大数据的概念高德纳咨询公司的定义麦肯锡全球研究所的定义什么是大数据? 大数据的特征Volume(体积)Variety(种类)Velocity(速度)Value(价值)Veracity&#…

【Redis入门到精通三】Redis核心数据类型(List,Set)详解

目录 Redis数据类型 ​编辑 1.List类型 (1)常见命令 (2)内部编码 2.Set类型 (1)常见命令 (2)内部编码 Redis数据类型 查阅Redis官方文档可知,Redis提供给用户的核…

ASP.NET Core高效管理字符串集合

我们在开发 Web 项目时经常遇到需要管理各种来源的字符串集合(例如HTTP 标头、查询字符串、设置的值等)的情况。合理的管理这些字符串集合不仅可以减少出bug的几率,也能提高应用程序的性能。ASP.NET Core 为我们提供了一种特殊的只读结构体 S…

多层感知机paddle

多层感知机——paddle部分 本文部分为paddle框架以及部分理论分析,torch框架对应代码可见多层感知机 import paddle print("paddle version:",paddle.__version__)paddle version: 2.6.1多层感知机(MLP,也称为神经网络&#xff0…

有关JS下隐藏的敏感信息

免责声明:本文仅做分享! 目录 JavaScript 介绍 核心组成 工具 FindSomething ** 浏览器检查 ** LinkFinder URLfinder ** SuperSearchPlus ** ffuf ParasCollector waymore Packer Fuzzer JS逆向 应用: 小结: Ja…

java-----IDE(集成开发环境)

IDE(集成开发环境) IDE(集成开发环境)-IDEA IDEA 介绍 1) IDEA 全称 IntelliJ IDEA2) 在业界被公认为最好的Java开发工具3) IDEA是JetBrains 公司的产品,总部位于捷克的首都布拉格4) 除了支持Java开发,还…

54.【C语言】 字符函数和字符串函数(strncpy,strncat,strncmp函数)

和strcpy,strcat,strcmp函数对应的是strncpy,strncat,strncmp函数 8.strncpy函数 *简单使用 cplusplus的介绍 点我跳转 翻译: 函数 strncpy char * strncpy ( char * destination, const char * source, size_t num ); 从字符串中复制一些字符 复制源(source)字符串的前num个…

【专题】2024新能源企业“出海”系列之驶向中东、东南亚报告合集PDF分享(附原数据表)

原文链接: https://tecdat.cn/?p37698 在“双碳”目标引领下,中国新能源产业近年迅猛发展,新能源企业凭借技术革新、政策支持与市场驱动实现快速增长,在产业链完备、技术领先、生产效能及成本控制等方面优势显著。面对国内外环境…

MySQL中的LIMIT与ORDER BY关键字详解

前言 众所周知,LIMIT和ORDER BY在数据库中,是两个非常关键并且经常一起使用的SQL语句部分,它们在数据处理和分页展示方面发挥着重要作用。 今天就结合工作中遇到的实际问题,回顾一下这块的知识点。同时希望这篇文章可以帮助到正…

ZXing.Net:一个开源条码生成和识别器,支持二维码、条形码等

推荐一个跨平台的非常流行的条码库,方便我们在.Net项目集成条码扫描和生成功能。 01 项目简介 ZXing.Net是ZXing的.Net版本的开源库。支持跨多个平台工作,包括 Windows、Linux 和 macOS,以及在 .NET Core 和 .NET Framework 上运行。 解码…

【数据结构】设有一带头结点的单链表,编程将链表颠倒过来。要求不用另外的数 组或结点完成。

编程题: 设有一带头结点的单链表,编程将链表颠倒过来。要求不用另外的数 组或结点完成。 分析: 该算法通过维护三个指针(prev、curr 和 next)逐步遍历单链表,实现链表的逆转。在遍历过程中,cur…

IDEA Cody 插件实现原理

近年来,智能编程助手 在开发者日常工作中变得越来越重要。IDEA Cody 插件是 JetBrains 生态中一个重要的插件,它可以帮助开发者 快速生成代码、自动补全、并提供智能提示,从而大大提升开发效率。今天我们将深入探讨 Cody 插件的实现原理&…

技术成神之路:设计模式(十四)享元模式

介绍 享元模式(Flyweight Pattern)是一种结构性设计模式,旨在通过共享对象来有效地支持大量细粒度的对象。 1.定义 享元模式通过将对象状态分为内部状态(可以共享)和外部状态(不可共享)&#xf…

AI免费UI页面生成

https://v0.dev/chat v0 - UI设计 cursor - 编写代码 参考:https://www.youtube.com/watch?vIyIVvAu1KZ4 界面和claude类似,右侧展示效果和代码 https://pagen.so/

【重学 MySQL】三十、数值类型的函数

【重学 MySQL】三十、数值类型的函数 基本函数角度与弧度互换函数三角函数指数与对数进制间的转换示例 基本函数 MySQL提供了一系列基本的数值函数,用于处理数学运算和数值转换。以下是一些常用的基本函数及其用法: 函数用法ABS(x)返回x的绝对值。SIGN…