极狐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文件:
- 打开项目中的.gitlab-ci.yml文件进行编辑。
- 使用
include
关键字将所选组件添加到您的CI配置中。 - 确保组件YAML文件的路径正确,并为每个组件指定合适的版本。
- 如果组件有输入参数,请查看组件文档以了解需要哪些输入,并将其添加到您的CI配置中。
- 保存并提交对.gitlab-ci.yml文件的更改。
以下是演示如何包含几个组件并使用它们的YAML代码示例。
如何创建和发布组件
您是否创建了一个有价值的配置,并希望与您的团队或极狐GitLab 社区分享和贡献?以下是实现这一目标的六个步骤:
第1步:创建新项目并将其设置为组件项目
- 在左侧边栏中,选择搜索或转到并找到您的项目。
- 在左侧边栏中,选择设置 > 通用。
- 展开可见性、项目功能、权限。
- 向下滚动至CI/CD目录资源并选择将项目设置为CI/CD目录资源。
- 确保填写了项目描述;此信息将在目录中展示,为用户提供有关组件目的和功能的讲解。
- 在仓库的根目录中创建一个.gitlab-ci.yml文件。您将需要此文件来测试和发布组件,如下文所述的步骤4和5。注意:对于包含组件的任何项目,此步骤只需要执行一次。
第2步:创建组件
- 在项目的根目录中创建一个/templates文件夹。
- 在该templates目录中,为每个组件创建一个YAML模板文件(以.yml结尾)。
- 如果组件需要输入参数,模板可以选择使用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配置
- 在组件项目的.gitlab-ci.yml文件中使用Release关键字创建一个发布作业。参见作业示例:
2. 注意:不要从极狐GitLab UI中“创建发布”,因为这很快就将不再支持组件目录等发布了。
3. 因此,这是我们建议您的作业如何查看的方式:
- 要手动发布组件,请按照以下方式添加手动规则,以便在触发流水线时,某人需要手动运行发布作业。
以下是带有when:manual规则的发布作业:
第6步:发布您的组件
一旦您满意您的组件,并且所有测试都已成功通过,现在是发布新版本的时候了,通过创建一个git标签,这样它们就会在CI/CD目录中可用。
- 使用推荐的语义版本格式“主版本.次版本.修订版本”创建一个Git标签。
- 您可以通过导航到代码 -> 标签 -> 新标签来通过UI创建标签,或者通过使用git tag命令通过CLI创建标签。
- 创建标签将触发一个流水线,如果所有测试都成功通过,将运行发布作业。然后,组件项目将被以标签中定义的版本发布,并将显示在目录中。