Help us learn about your current experience with the documentation. Take the survey.

开始使用 GitLab CI/CD

  • Tier: 免费版、高级版、旗舰版
  • Offering: GitLab.com、GitLab 自托管、GitLab 专用

CI/CD 是一种持续性的软件开发方法,你持续构建、测试、部署和监控迭代式的代码变更。

这种迭代过程有助于减少你基于有缺陷或失败的前版本开发新代码的可能性。GitLab CI/CD 可以在开发周期的早期捕获错误,并帮助确保部署到生产环境的代码符合你既定的代码标准。

这个过程是更大工作流程的一部分:

GitLab DevSecOps 生命周期,包含 Plan、Create、Verify、Secure、Release 和 Monitor 阶段。

第 1 步:创建 .gitlab-ci.yml 文件

要使用 GitLab CI/CD,你需要在项目根目录下创建一个 .gitlab-ci.yml 文件。 这个文件指定了 CI/CD 管道中要执行的阶段、作业和脚本。 它是一个具有自己自定义语法的 YAML 文件。

在这个文件中,你定义变量、作业之间的依赖关系,并指定每个作业应该在何时以及如何执行。

你可以随意命名这个文件,但 .gitlab-ci.yml 是最常见的名称, 产品文档将其称为 .gitlab-ci.yml 文件或 CI/CD 配置文件。

更多信息,请参见:

第 2 步:查找或创建 Runner

Runner 是运行你作业的代理。这些代理可以在物理机器或虚拟实例上运行。 在你的 .gitlab-ci.yml 文件中,你可以指定运行作业时要使用的容器镜像。 Runner 会加载镜像、克隆你的项目,并在本地或容器中运行作业。

如果你使用 GitLab.com,Linux、Windows 和 macOS 上的 Runner 已经可供使用。如果你愿意,你也可以在 GitLab.com 上注册自己的 Runner。

如果你不使用 GitLab.com,你可以:

  • 注册 Runner 或使用已为你的 GitLab 自托管实例注册的 Runner。
  • 在你的本地机器上创建一个 Runner。

更多信息,请参见:

第 3 步:定义你的管道

管道就是你在 .gitlab-ci.yml 文件中定义的内容, 也是当文件内容在 Runner 上运行时发生的事情。

管道由作业和阶段组成:

  • 阶段定义了执行顺序。典型的阶段可能是 buildtestdeploy
  • 作业指定了每个阶段要执行的任务。例如,一个作业可以编译或测试代码。

管道可以由各种事件触发,如提交或合并,或者可以按计划运行。 在你的管道中,你可以与各种工具和平台集成。

更多信息,请参见:

第 4 步:将 CI/CD 变量用作作业的一部分

GitLab CI/CD 变量是键值对,用于存储和传递配置设置 以及敏感信息(如密码或 API 密钥)给管道中的作业。

使用 CI/CD 变量通过使作业能够访问其他地方定义的值来自定义作业。 你可以在 .gitlab-ci.yml 文件中硬编码 CI/CD 变量,在项目设置中设置它们, 或者动态生成它们。你可以为项目、组或实例定义它们。

存在两种类型的变量:自定义变量和预定义变量。

  • 自定义变量是用户定义的。在 GitLab UI、API 或配置文件中创建和管理它们。
  • 预定义变量由 GitLab 自动设置,并提供关于当前作业、管道和环境的信息。

变量可以标记为 “protected”(受保护的)或 “masked”(掩码的)以增加安全性。

  • 受保护的变量仅可用于在受保护分支或标签上运行的作业。
  • 掩码变量在作业日志中隐藏其值,以防止敏感信息被暴露。

更多信息,请参见:

第 5 步:使用 CI/CD 组件

CI/CD 组件是一个可重用的管道配置单元。 使用 CI/CD 组件来组合整个管道配置或更大管道的一小部分。

你可以使用 include:component 将组件添加到你的管道配置中。

可重用组件有助于减少重复,提高可维护性,并促进项目间的一致性。创建一个组件项目并将其发布到 CI/CD 目录,以在多个项目之间共享你的组件。

GitLab 还为常见任务和集成提供了 CI/CD 组件模板。

更多信息,请参见: