GitLab 是一个全球知名的一体化 DevOps 平台,很多人都通过私有化部署 GitLab 来进行源代码托管。极狐GitLab :https://gitlab.cn 是 GitLab 在中国的发行版,专门为中国程序员服务。可以一键式部署极狐GitLab。
更多关于极狐GitLab :https://gitlab.cn 或者 DevOps 的最佳实践,可以关注文末的极狐GitLab 公众号。
学习极狐GitLab 的相关资料:
- 极狐GitLab 官网:https://gitlab.cn
- 极狐GitLab 官网文档:https://docs.gitlab.cn
- 极狐GitLab 论坛:https://forum.gitlab.cn/
- 极狐GitLab 安装配置:https://gitlab.cn/install
- 极狐GitLab 资源中心:https://resources.gitlab.cn
极狐GitLab 是一个一体化的 DevOps 平台,内置 CI/CD 功能。从 16.x 开始,极狐GitLab 开始推出了两个关于 CI/CD 的重磅功能——CI/CD 组件 & CI/CD 目录。本文带你了解在 CI/CD 流水线中使用 CI/CD 组件的主要好处以及如何实现这些好处。
在这篇博文中,我们将深入探讨极狐GitLab 的 CI/CD 组件在彻底改变 CI/CD 工作流程方面的强大功能。 我们还将介绍极狐GitLab CI/CD 生态系统的未来,包括已经发布的 CI/CD 目录,这是一个包含这些组件集合的框架。 通过这些举措,极狐GitLab 在简化流水线配置和增强可重用性方面迈出了重要一步。
CI/CD 组件
在 GitLab 16.1 中,我们引入了一个令人兴奋的实验功能—— CI/CD 组件。 CI/CD 组件是可重用的单一用途的流水线构建块,可抽象出流水线配置单元。
通过利用 CI/CD 组件的强大功能,用户可以释放几个关键优势:
- 可重用性和抽象性。 CI/CD 组件允许使用抽象来组装流水线,而不是在一处定义所有细节。 通过封装实现细节的组件,开发人员可以专注于使用预构建的可重用块来构建流水线。 这种方法促进了模块化、代码可重用性并简化了流水线维护。
- 灵活输入。 组件支持输入参数,支持基于流水线上下文的定制,使它们能够在各个流水线阶段进行调整和重用。 开发人员能够构建带有标记和版本的动态 CI/CD 目录,从而提供更好的控制和兼容性。 开发人员可以参考特定的组件版本,确保稳定性和可重复性。 通过利用版本标签,团队可以保持流水线的一致性,同时在需要时轻松升级到新版本。
- 通过测试达到高质量标准。 强烈建议将测试组件作为开发工作流程的一部分,以确保质量保持高标准。 通过将测试纳入 CI/CD 流程,开发人员可以验证组件的可靠性和功能,尽早识别和修复问题,并提供更强大、更可靠的流水线。
- CI/CD 目录。 CI/CD 目录是一个集中的组件存储库,将作为涵盖广泛用例的组件宝库。 这个集中式存储库为开发人员提供了发现、集成和共享组件的一站式服务。 团队可以从不断增长的预构建、经过质量测试的组件目录中受益,从而节省配置流水线的时间和精力。
在之前的博客文章中,我们讨论了前两点的主要好处(也可用于 CI/CD 模板),但现在让我们更深入地研究组件以及它们如何彻底改变您构建流水线的方式。
测试 CI/CD 组件
随着软件开发的不断发展,确保代码组件的可靠性和高质量变得越来越重要。
使用组件的主要好处之一是能够在软件正式发布之前彻底测试组件,从而实现更强大和简化的开发过程。 在我们的上下文中,已发布的组件是版本化的,并将遵循结构化语法,从而允许在流水线内无缝集成。
include:
- components: /path/to/project@<version>
我们的 CI/CD 组件的独特优势之一是它们提供的灵活性。 DevSecOps 团队可以通过附加 @commit_SHA 来选择“非官方”版本,从而允许他们在发布正式版本之前对其代码进行试验和迭代。
include:
- components: /path/to/project@<commit_SHA>
要使组件成为正式版本,用户必须对其进行标记,本质上是创建版本化快照。 然后,标记的版本将在我们完整的 CI/CD 目录中提供,使用户可以轻松访问一系列经过彻底测试和批准的组件。 为了确保 CI/CD 组件的稳定性和可靠性,对它们进行彻底测试至关重要。 DevSecOps 团队可以通过利用 commit_SHA 标识符来运行全面的测试,从而利用我们流水线的强大功能。 如果流水线成功通过所有测试,它们就可以继续标记该组件,表明其已准备好发布。
通过根据标记版本配置发布作业,DevSecOps 团队可以放心地将官方组件合并到他们的项目中,因为知道它已经经过测试和验证。
版本控制和标记
如上一节所述,DevSecOps 团队可以利用 @version 或 @commit_SHA 来引用其流水线中的组件。 引用组件的另一种选择是利用@latest。
include:
- components: /path/to/project@latest
这将使用最新的官方(已标记)可用组件。 当在流水线中与可靠的测试结合使用时,您可以保证流水线中使用的组件始终经过测试和验证。
CI/CD 目录
CI/CD 目录将允许用户搜索、查找和了解如何使用整个组织中可用的组件,为他们设置一个框架来协作构建流水线,以便随着时间的推移不断发展和改进。
测试组件
在极狐GitLab,我们相信最好的测试就是用自己的产品进行产品研发,也就是传说中的 dogfooding 文化。 为了展示 CI/CD 组件的强大功能和实用性,我们将一些极狐GitLab 模板转换为组件,并要求我们的内部团队使用它们并提供额外的反馈。 通过这样做,我们在现实场景中积极使用和测试组件,发现见解并不断改进其功能。 在这个小组中,我们将代码质量、容器扫描和 SAST 模板转换为 CI/CD 组件,并要求内部团队使用它们。
通过这个测试过程,我们不仅验证了 CI/CD 组件的有效性,而且还获得了宝贵的经验和反馈,以完善和增强我们的产品。 这证明了我们致力于为用户提供实用且可靠的解决方案。
呼吁采取行动
CI/CD 组件目录目前处于实验阶段,因此我们建议目前不要在生产环境中使用它。 对其进行更改的可能性很高。 我们目前正在努力重新组织组件的文件夹结构,为 CI/CD 目录的启动做准备。
下一步
极狐GitLab 的 CI/CD 组件目录及其随附的 CI/CD 组件功能正在开创简化流水线配置的新时代。 通过采用可重用性、抽象性、输入灵活性、版本控制和集中式目录,开发人员可以构建高效、适应性强且可维护的 CI/CD 工作流程。 CI/CD 组件目录使团队能够加速软件交付、有效协作并充分利用极狐GitLab CI/CD 功能的潜力。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。