首页 > 其他分享 >定义可引用的 CI/CD 配置文件中的输入参数

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

时间:2024-09-20 10:13:47浏览次数:8  
标签:inputs CI 配置文件 deploy CD 参数 模板 输入

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

这些输入参数可以针对每个配置文件声明为强制参数或可选参数,从而减少对全局变量的需求,并使 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 模板并在流水线配置中使用它们。 通过使用带有输入的模板,您可以简化流水线配置并使模板更加模块化和可重用。

本文由博客群发一文多发等运营工具平台 OpenWrite 发布

标签:inputs,CI,配置文件,deploy,CD,参数,模板,输入
From: https://www.cnblogs.com/jihugitlab/p/18421934

相关文章

  • 首席数据官的起源?首席数据官CDO职能及对公司价值?
    首席数据官(CDO)的角色诞生于数字化转型的大背景之下。美国引领了这一趋势,芝加哥在2011年任命了首位市政级首席数据官,紧接着2013年,联邦政府也设立了相应的职位。到了2019年1月,特朗普签署的《基于循证决策的基础法案》明确要求联邦政府各机构指定一名非政治任命的常任雇员作为首......
  • 首席数据官(CDO)概览
    首席数据官(CDO)担任着企业中一个至关重要的高级管理层角色,主要聚焦于对整个组织的数据资产进行全面监管与管理。以下内容进一步详细阐述并深入解析了这一关键职位的核心职责和战略地位:首席数据官的核心使命在于确保数据资产的质量与完整,通过开发前瞻性的数据策略来引领数据治......
  • COMP3702 Artificial Intelligence
    COMP3702ArtificialIntelligence(Semester2,2024)Assignment2:BeeBotMDPKeyinformation:Due:1pm,Friday20September2024Thisassignmentassessesyourskillsindevelopingdiscretesearchtechniquesforchallengingproblems.Assignment1contrib......
  • 帝国CMS报错:您的PHP配置文件php.ini配置有问题,怎么解决
    帝国CMS报错“您的PHP配置文件php.ini配置有问题”时,通常意味着PHP的某些配置项不符合帝国CMS的要求。以下是一些可能的解决方案:检查short_open_tag配置:如果你在使用较新版本的PHP(如5.4及以上),short_open_tag配置项默认是关闭的。帝国CMS可能依赖于<?这样的短标签格式。你需要......
  • AAAI(the Association for the Advance of Artificial Intelligence)近十年研究热点词云
    AAAI(theAssociationfortheAdvanceofArtificialIntelligence)近十年研究热点词云图AAAI近十年(2015-2024)研究热点追踪......
  • ACL(Annual Meeting of the Association for Computational Linguistics)近十年研究热
    ACL(AnnualMeetingoftheAssociationforComputationalLinguistics)近十年研究热点追踪ACL近10年研究热点追踪......
  • 《DNK210使用指南 -CanMV版 V1.0》第二十五章 LCD图片显示实验
    第二十五章LCD图片显示实验1)实验平台:正点原子DNK210开发板2)章节摘自【正点原子】DNK210使用指南-CanMV版V1.03)购买链接:https://detail.tmall.com/item.htm?&id=7828013987504)全套实验源码+手册+视频下载地址:http://www.openedv.com/docs/boards/k210/ATK-DNK210.html5)正......
  • SQLSTATE[42S02]: Base table or view not found: 1146 Table '***.ey_citysite' does
    根据提供的错误信息 SQLSTATE[42S02]:Basetableorviewnotfound:1146Table'***.ey_citysite'doesn'texist,这个错误表明数据库中不存在名为 ey_citysite 的表或视图。以下是一些可能的解决步骤:1.确认表是否存在首先确认表是否真的存在。使用SQL命令检查表可以......
  • SciTech-Mathmatics-LaTex: LaTeX:从入门到日常使用
    LaTeX:从入门到日常使用发表于2022-02-05|更新于2022-03-20|教程|字数总计:3.6k|阅读时长:12分钟|阅读量:前言:排版工具与书写工具的讨论LaTeX是一种“非所见即所得”的排版系统,用户需要输入特定的代码,保存在后缀为.tex的文件中,通过编译得到所需的pdf文件,例如以下代码:$......
  • 云计算-k8s上使用定时任务配置elatiscdump和mysqldump
    现在很多中间件都是容器化部署到k8s平台上,例如elasticsearch和mysql。一般的商业产品k8s都有针对这些中间的备份功能,但是如果我们要对这些容器的化的中间件导出数据进行备份,可以采用k8s的定时任务来执行elasticdump定时任务elasitcdump是一款开源的ES数据迁移工具,国内码云地址 h......