极狐GitLab CICD Catalog Beta 功能介绍

news2024/9/21 10:33:00

极狐GitLab 是 GitLab 在中国的发行版,专门面向中国程序员和企业提供企业级一体化 DevOps 平台,用来帮助用户实现需求管理、源代码托管、CI/CD、安全合规,而且所有的操作都是在一个平台上进行,省事省心省钱。可以一键安装极狐GitLab,详情可以参考极狐GitLab 下载安装官网。

GitLab 中文版学习资料

  • 驭码CodeRider 官网:https://coderider.gitlab.cn/
  • GitLab 中文版官网:https://gitlab.cn
  • GitLab 中文文档:https://docs.gitlab.cn
  • GitLab 中文下载安装:https://gitlab.cn/install

轻松发现、重用和贡献CI/CD组件,增强创建流水线配置时的协作和效率。

DevSecOps 的核心在于速度——实现软件开发的快速进展。要在 DevSecOps 中取得成功,组织需要一个运行良好的 CI/CD 流水线,团队可以利用它来自动化其开发工作流程。

然而,使用 YAML 创建流水线配置可能会非常复杂和具有挑战性,因为 YAML 不是一种编程语言,开发人员可能会发现自己每次尝试创建新配置时都在重新发明轮子,因为他们看不到现有配置和其他人可能已经完成的工作,导致效率低下。

极狐GitLab 16.7 引入了CI/CD 目录(Beta版),旨在通过解决开发人员在创建流水线配置时遇到的三个主要问题来提高开发效率:

  • 可发现性:是否已经有人为我的任务创建了配置,我该在哪里找到它?
  • 可重用性:一旦我找到合适的流水线,我如何有效地使用它?
  • 贡献的便利性:我创建了一个有用的配置,我如何轻松地与极狐GitLab 社区分享?

什么是极狐GitLab CI/CD目录?

CI/CD 目录作为一个集中的枢纽,供开发人员和组织分享预先发布的 CI/CD 组件,并发现其他人可能已经开发的可重用的配置。用户发布的每个组件都将成为一个公共目录的一部分,所有用户都可以访问,无论他们的组织或项目如何。

这种方法促进了跨组织的协作,允许整个极狐GitLab社区从可用的 CI 组件中受益。这是在极狐GitLab用户之间共享知识的重要一步,使开发人员能够利用平台的专业知识。

轻松创建和发布组件

除了重用组件之外,开发人员还可以通过创建自己的组件并将其发布到目录中来为极狐GitLab CI/CD 社区作出贡献。这确保了其他人可以从他们的专业知识中受益,并促进了平台上的合作。

如何发现和使用组件

1. 打开CI/CD组件目录

单击“搜索或转到…”

在这里插入图片描述

通过导航到“探索 > CI/CD目录”或访问此目录页面打开目录。

在这里插入图片描述

在目录中,您将找到一个 CI/CD 组件项目列表,里面的组件由您的团队、组织或更广泛的极狐GitLab社区贡献。

2. 浏览组件

浏览CI/CD目录中的组件列表,或使用搜索栏查找与特定主题相关的组件。

每个组件项目包含一个或多个组件。打开组件项目会看到对应的文档,提供有关所有可用组件的详细信息。这包括如何使用每个组件以及了解需要输入的参数等信息。

3. 将所选组件包含在您的.gitlab-ci.yml中

现在您已经浏览了目录并选择了所需的CI/CD组件,请将它们集成到项目的CI/CD流水线中。

按照以下步骤更新您的.gitlab-ci.yml文件:

  1. 打开项目中的.gitlab-ci.yml文件进行编辑。
  2. 使用 include 关键字将所选组件添加到您的CI配置中。
  3. 确保组件YAML文件的路径正确,并为每个组件指定合适的版本。
  4. 如果组件有输入参数,请查看组件文档以了解需要哪些输入,并将其添加到您的CI配置中。
  5. 保存并提交对.gitlab-ci.yml文件的更改。

以下是演示如何包含几个组件并使用它们的YAML代码示例。

在这里插入图片描述

如何创建和发布组件

您是否创建了一个有价值的配置,并希望与您的团队或极狐GitLab 社区分享和贡献?以下是实现这一目标的六个步骤:

第1步:创建新项目并将其设置为组件项目

  1. 在左侧边栏中,选择搜索或转到并找到您的项目。
  2. 在左侧边栏中,选择设置 > 通用
  3. 展开可见性、项目功能、权限
  4. 向下滚动至CI/CD目录资源并选择将项目设置为CI/CD目录资源。
  5. 确保填写了项目描述;此信息将在目录中展示,为用户提供有关组件目的和功能的讲解。
  6. 在仓库的根目录中创建一个.gitlab-ci.yml文件。您将需要此文件来测试和发布组件,如下文所述的步骤4和5。注意:对于包含组件的任何项目,此步骤只需要执行一次。

第2步:创建组件

  1. 在项目的根目录中创建一个/templates文件夹。
  2. 在该templates目录中,为每个组件创建一个YAML模板文件(以.yml结尾)。
  3. 如果组件需要输入参数,模板可以选择使用spec关键字包含输入参数的描述,并定义作业,其中可能包括使用插值格式$[[ inputs.input-name ]]引用值的定义。请确保在规范标题和作业定义之间使用三个破折号。

以下是一个获取输入参数的deploy.yml模板示例:

在这里插入图片描述
在此模板中,我们定义了两个输入参数,stage和environment,两者都有默认值。在content部分,定义了一个作业,它插入了这些输入参数。

第3步:创建组件文档

在项目的根目录中创建一个README.md文件,包含有关组件的信息。解释组件的功能,详细说明输入参数,并提供说明性示例。这可以确保组件使用者清楚地了解如何使用它们。

以下是组件文档的示例:

在这里插入图片描述

更多信息请参阅我们过往的文章极狐GitLab CI/CD Component & Catalog 功能揭秘。

第4步:为组件添加测试(推荐)

开发组件遵循标准的软件开发周期,包括构建、测试和部署等阶段。强烈建议在发布之前对组件进行测试。查看此示例测试,该测试查询极狐GitLab REST API以检查组件作业是否已添加到流水线中。请随意使用,并考虑添加更多测试以确保您的组件按预期工作。

在这里插入图片描述将所有测试作业包含在 Catalog 项目的.gitlab-ci.yml文件中。

第5步:准备发布您的CI/CD配置

  1. 在组件项目的.gitlab-ci.yml文件中使用Release关键字创建一个发布作业。参见作业示例:

在这里插入图片描述
2. 注意:不要从极狐GitLab UI中“创建发布”,因为这很快就将不再支持组件目录等发布了。

在这里插入图片描述
3. 因此,这是我们建议您的作业如何查看的方式:

在这里插入图片描述

  1. 要手动发布组件,请按照以下方式添加手动规则,以便在触发流水线时,某人需要手动运行发布作业。

在这里插入图片描述
以下是带有when:manual规则的发布作业:

在这里插入图片描述

第6步:发布您的组件

一旦您满意您的组件,并且所有测试都已成功通过,现在是发布新版本的时候了,通过创建一个git标签,这样它们就会在CI/CD目录中可用。

  1. 使用推荐的语义版本格式“主版本.次版本.修订版本”创建一个Git标签。
  2. 您可以通过导航到代码 -> 标签 -> 新标签来通过UI创建标签,或者通过使用git tag命令通过CLI创建标签。
  3. 创建标签将触发一个流水线,如果所有测试都成功通过,将运行发布作业。然后,组件项目将被以标签中定义的版本发布,并将显示在目录中。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Python】数据类型之列表(下)

(6)清空列表 功能:clear() 代码示例: (7)根据值获取索引(从左到右找到第一个返回索引)【慎用,找不到报错】 功能:index(xyz),xyz为数据类型。 …

OpenAI gym player mode

题意:OpenAI gym 的自定义模式 问题背景: Does anyone know how to run one of the OpenAI gym environments as a player. As in letting a human player play a round of cart pole? I have seen that there is env.mode human but I have not been…

波兰表达式求值

from operator import add, sub, muldef div(x, y):# 使用整数除法的向零取整方式return int(x / y) if x * y > 0 else -(abs(x) // abs(y))class Solution(object):op_map {: add, -: sub, *: mul, /: div}def evalRPN(self, tokens: List[str]) -> int:stack []for …

【C基础-按要求找数】一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少

一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少 完全平方数是指一个整数能够表示为某个整数的平方。换句话说,如果存在一个整数 n,使得 n^2m,那么 m 就是一个完全平方数。 使用C…

第二十一天培训笔记

上午 1 、环境准备 2 、安装 mysql 绿包 3 、配置 mysql 工作环境 mysql -hip 地址 -p3306 -uroot -p (远程连接使用) 4 、 mysql 基础命令 ( 1 )修改密码 ( 2 )授权远程登录 ( 3 &#x…

程序员短视频上瘾综合症

一、是你疯了还是面试官疯了? ​ 最近有两个学员咨询问题,把我给整得苦笑不得。大家来看看,你有没有同样的症状。 ​ 第一个学员说去一家公司面试,第一轮面试聊得挺好的。第二轮面试自我感觉良好,但是被面试官给Diss…

模型优化学习笔记—对比各种梯度下降算法

import mathimport numpy as np from opt_utils import * import matplotlib.pyplot as plt# 标准梯度下降 def update_parameters_with_gd(parameters, grads, learning_rate):L len(parameters) // 2for l in range(1, L 1):parameters[f"W{l}"] parameters[f&q…

【uniapp】聊天记录列表长按消息计算弹出菜单方向

1. 效果图 1.1 消息靠上接近导航栏&#xff0c;菜单显在消息体下方弹出&#xff0c;箭头向上 1.2 消息体没有贴近上方导航栏&#xff0c;菜单在消息体上方弹出&#xff0c;箭头向下 1.3 长消息&#xff0c;菜单在手指按下的位置弹出&#xff0c;无箭头 2. 代码实现 <view …

sqli 1- 10

sql靶场 第一关 首先我们需要判断是否存在sql注入点&#xff0c;前端界面提示我使用ID作为参数,在url地址栏输入?id1 通过输入不同的id值查询数据库相对应的内容&#xff0c;之后判断为数字型还是字符型 根据查询内容判断为字符型且有注入点&#xff0c;再通过联合查询&…

Vitis AI 基本操作+模型检查(inspector)用法详解

目录 1. 简介 2. 代码详解 2.1 导入所需的库 2.2 创建 Inspector 2.3 下载模型 2.4 检查模型 3. 其他有用函数 3.1 查看 torchvision 中模型 3.2 保存模型 3.2.1 保存模型参数 3.2.2 保存完整模型 3.2.3 加载模型 4. 总结 1. 简介 在《Vitis AI 构建开发环境&…

GNSS相关知识

各定位系统的频段&#xff1a; SystemSignalFrequency(MHz)GPSL1C/A1575.42L1C1575.42L2C1227.6L2P1227.6L51176.45   GLONASSL1C/A1598.0625-1609.3125L2C1242.9375-1251.6875L2P1242.9375-1251.6875L3OC1202.025   GalileoE11575.42E5a1176.45E5b1207.14E5AltBOC1191.…

SpringBoot之外部化配置

前言 SpringBoot 版本 2.6.13&#xff0c;相关链接 Core Features Default properties (specified by setting SpringApplication.setDefaultProperties).PropertySource annotations on your Configuration classes. Please note that such property sources are not added …

如何在群晖NAS中搭建影音管理利器nastool并实现远程访问本地资源

文章目录 前言1. 本地搭建Nastool2. nastool基础设置3. 群晖NAS安装内网穿透工具4. 配置公网地址5. 配置固定公网地址 前言 Nastool是为群晖NAS玩家量身打造的一款智能化影音管理利器。它不仅能够满足电影发烧友、音乐爱好者和追剧达人的需求&#xff0c;更能让你在繁忙的生活…

疯狂的马达——Arduino

本次学习目标 1、了解马达的运用、以及马达内部的基本原理。 2、学会通过编程控制马达的速度、方向。 3、制作电位器换挡风扇。 马达 “马达”为英语motor的音译&#xff0c;我们称为电机&#xff0c;电机又可分为 发电机和电动机。前者是一种能够将动能转化电能的装置&am…

【知识】pytorch中的pinned memory和pageable memory

转载请注明出处&#xff1a;小锋学长生活大爆炸[xfxuezhagn.cn] 如果本文帮助到了你&#xff0c;欢迎[点赞、收藏、关注]哦~ 目录 概念简介 pytorch用法 速度测试 反直觉情况 概念简介 默认情况下&#xff0c;主机 &#xff08;CPU&#xff09; 数据分配是可分页的。GPU 无…

计算机系统的基本结构-CSP初赛知识点整理

真题练习 [2021-CSP-J-第3题] 目前主流的计算机储存数据最终都是转换成&#xff08; &#xff09;数据进行储存。 A.二进制 B.十进制 C.八进制 D.十六进制 [2020-CSP-J-第1题] 在内存储器中每个存储单元都被赋予一个唯一的序号&#xff0c;称为( ) A&#xff0e;地址 B&a…

探索 Electron 应用的本地存储:SQLite3 与 Knex.js 的协同工作

electron 简介 Electron 是一个使用 JavaScript, HTML 和 CSS 构建跨平台桌面应用程序的框架。 它允许开发者使用 Web 技术来创建桌面软件&#xff0c;而不需要学习特定于平台的编程语言。 Electron 应用程序实际上是一个包含 Web 内容的 Chromium 浏览器实例&#xff0c;并…

创建型模式(Creational Patterns)之工厂模式(Factory Pattern)之简单工厂模式(Simple Factory Pattern)

1.简单工厂模式&#xff08;Simple Factory Pattern&#xff09;&#xff0c;又叫做静态工厂方法&#xff08;Static FactoryMethod Pattern&#xff09;。 1.1 基本介绍 被创建的对象称为“产品”&#xff0c;创建产品的对象称为“工厂”。如果要创建的产品不多&#xff0c;只…

WPF-实现多语言的静态(需重启)与动态切换(不用重启)

一、多语言切换&#xff08;需重启&#xff09; 1、配置文件添加Key <appSettings><add key"language" value"zh-CN"/></appSettings> 2、新增附加属性当前选择语言 public CultureInfo SelectLanguage{get > (CultureInfo)GetValu…

使用Go语言绘制柱状图教程

使用Go语言绘制柱状图教程 本文将介绍如何使用Go语言及gg包绘制柱状图&#xff0c;并将图表保存为PNG格式的图片。gg包是一个功能强大的2D图形库&#xff0c;适合用于绘制各种图表。 安装gg包 首先&#xff0c;确保你已经安装了gg包。如果还没有安装&#xff0c;可以使用以下…