轻松发现、重用和贡献CI/CD组件,增强创建流水线配置时的协作和效率。
DevSecOps 的核心在于速度——实现软件开发的快速进展。要在 DevSecOps 中取得成功,组织需要一个运行良好的 CI/CD 流水线,团队可以利用它来自动化其开发工作流程。
然而,使用 YAML 创建流水线配置可能会非常复杂和具有挑战性,因为 YAML 不是一种编程语言,开发人员可能会发现自己每次尝试创建新配置时都在重新发明轮子,因为他们看不到现有配置和其他人可能已经完成的工作,导致效率低下。
极狐GitLab 16.7 引入了CI/CD 目录(Beta版),旨在通过解决开发人员在创建流水线配置时遇到的三个主要问题来提高开发效率:
CI/CD 目录作为一个集中的枢纽,供开发人员和组织分享预先发布的 CI/CD 组件,并发现其他人可能已经开发的可重用的配置。用户发布的每个组件都将成为一个公共目录的一部分,所有用户都可以访问,无论他们的组织或项目如何。
这种方法促进了跨组织的协作,允许整个极狐GitLab社区从可用的 CI 组件中受益。这是在极狐GitLab用户之间共享知识的重要一步,使开发人员能够利用平台的专业知识。
除了重用组件之外,开发人员还可以通过创建自己的组件并将其发布到目录中来为极狐GitLab CI/CD 社区作出贡献。这确保了其他人可以从他们的专业知识中受益,并促进了平台上的合作。
单击搜索或转到... --> 搜索:
通过导航到“探索 > CI/CD目录”或访问此目录页面打开目录。
在目录中,您将找到一个 CI/CD 组件项目列表,里面的组件由您的团队、组织或更广泛的极狐GitLab社区贡献。
浏览CI/CD目录中的组件列表,或使用搜索栏查找与特定主题相关的组件。
每个组件项目包含一个或多个组件。打开组件项目会看到对应的文档,提供有关所有可用组件的详细信息。这包括如何使用每个组件以及了解需要输入的参数等信息。
现在您已经浏览了目录并选择了所需的CI/CD组件,请将它们集成到项目的CI/CD流水线中。
按照以下步骤更新您的.gitlab-ci.yml文件:
include
关键字将所选组件添加到您的CI配置中。
以下是演示如何包含几个组件并使用它们的YAML代码示例。
您是否创建了一个有价值的配置,并希望与您的团队或极狐GitLab 社区分享和贡献?以下是实现这一目标的六个步骤:
/templates
文件夹。templates
目录中,为每个组件创建一个YAML模板文件(以.yml结尾)。spec
关键字包含输入参数的描述,并定义作业,其中可能包括使用插值格式$[[ inputs.input-name ]]
引用值的定义。请确保在规范标题和作业定义之间使用三个破折号。
以下是一个获取输入参数的deploy.yml模板示例:
在此模板中,我们定义了两个输入参数,stage
和environment
,两者都有默认值。在content
部分,定义了一个作业,它插入了这些输入参数。
在项目的根目录中创建一个README.md文件,包含有关组件的信息。解释组件的功能,详细说明输入参数,并提供说明性示例。这可以确保组件使用者清楚地了解如何使用它们。
以下是组件文档的示例:
更多信息请参阅我们过往的文章极狐GitLab CI/CD Component & Catalog 功能揭秘。
开发组件遵循标准的软件开发周期,包括构建、测试和部署等阶段。强烈建议在发布之前对组件进行测试。查看此示例测试,该测试查询极狐GitLab REST API以检查组件作业是否已添加到流水线中。请随意使用,并考虑添加更多测试以确保您的组件按预期工作。
将所有测试作业包含在 Catalog 项目的.gitlab-ci.yml文件中。
注意:不要从极狐GitLab UI中“创建发布”,因为这很快就将不再支持组件目录等发布了。
2. 我们建议在发布作业中添加此规则;这将在创建项目中以数字开头的git标签时自动触发发布作业,遵循语义化发布约定(例如1..)。
3. 因此,这是我们建议您的作业如何查看的方式:
4. 要手动发布组件,请按照以下方式添加手动规则,以便在触发流水线时,某人需要手动运行发布作业。
以下是带有when:manual规则的发布作业:
一旦您满意您的组件,并且所有测试都已成功通过,现在是发布新版本的时候了,通过创建一个git标签,这样它们就会在CI/CD目录中可用。