GitLab CI/CD 初学者入门 [免费课程] 概述 - 1 小时内你将学到什么 ✅ 什么是 GitLab CI/CD? 简单来说,什么是 CI/CD 众多 CI/CD 平台 GitLab 架构 流水线配置 - .gitlab-ci.yml

2025-06-07

GitLab CI/CD 初学者指南 [免费课程]

概述 - 您将在 1 小时内学到什么✅

什么是 GitLab CI/CD?

简单来说,CI/CD 是什么

许多 CI/CD 平台

GitLab 架构

管道配置 - .gitlab-ci.yml

在本 GitLab 速成课程,我将在 1 小时内教你开始使用 GitLab CI/CD 所需的一切知识🚀😊

概述 - 您将在 1 小时内学到什么✅

  • GitLab CI/CD 是什么
  • GitLab 与其他 CI/CD 平台的比较
  • GitLab 架构概述
  • 为 Python 演示应用程序构建完整的 GitLab CI/CD 管道
    • 执行测试,
    • 构建 Docker 镜像,
    • 推送到私有 Docker 存储库并
    • 将应用程序部署到 DigitalOcean 上的远程服务器GitLab CI/CD 管道
  • 学习 GitLab 基本概念:
    • 管道、工作、
    • 阶段
    • GitLab 运行器和执行器
    • 变量(变量和文件类型)
    • Docker 中的 DockerGitLab 课程概述

什么是 GitLab CI/CD?

首先,什么是 Gitlab CI/CD,以及为什么你应该关心它?

GitLab 平台总体上致力于成为 DevOps 平台或为您的应用程序构建 DevOps 流程的一站式商店
GitLab 作为 DevOps 平台

所以他们有这个路线图,并且正在朝着这个方向努力,这意味着他们实际上正在集成和创建新功能,基本上在一个平台上为您提供所有内容以构建完整的 DevOps 流程,而这些流程的很大一部分是 CI/CD 管道。

简单来说,CI/CD 是什么

首先简单来说什么是 CI/CD。

CI/CD 代表持续集成持续部署持续交付,其基本含义是自动且持续地测试、构建和发布代码更改到部署环境

这意味着当开发人员将新代码提交到 Gitlab 存储库时,Gitlab 将自动执行您为项目配置的 CI/CD 管道,以将这些代码更改发布到最终环境,最终用户可以在其中访问它们:
持续集成/持续交付

但 CI/CD 的概念本身就是一个话题。如果你想更深入地理解它,可以看看我关于 DevOps 和 CI/CD 流水线的视频,我会在这里更详细地解释这一点:什么是 DevOps?

但正如我所说,简单来说,CI/CD 就是将您的代码更改持续发布到最终环境,并且在本速成课程中,我们将使用 Gitlab CI/CD 构建 CI/CD 管道的简化版本。

许多 CI/CD 平台

当然,CI/CD 工具有很多,其中业界最常用的工具之一仍然是 Jenkins。Gitlab CI/CD 只是众多 CI/CD 平台之一:
CI/CD 平台概述

同一平台上的源代码和 CI/CD

它们都有各自的优缺点,但使用 Gitlab 为你的应用程序构建 CI/CD 管道的一个很大的优势是你已经在 Gitlab 上拥有你的代码,因此这是你团队中软件开发流程的扩展,你也可以在同一平台上构建 CI/CD 管道:
GitLab 优势

因此,您的团队已经在使用 Gitlab,您的代码也在那里,所以这基本上是一个附加功能,您可以使用它来扩展 Gitlab 上的工作流程,而不需要为此使用单独的工具。👍

除此之外,Gitlab 还允许您在无需任何设置工作的情况下开始使用,并且将管道作为应用程序代码的一部分,从而使扩展变得非常无缝,与 Jenkins 相比,例如,您必须设置和配置 Jenkins 服务器,创建管道,然后将其连接到 Git 项目:
GitLab 与 Jenkins

使用 Gitlab 您无需进行任何配置工作即可开始,我们将在演示部分看到这一点。

GitLab 架构

现在,如果您无需设置任何东西,也无需配置任何服务器来运行管道,它实际上是如何工作的呢
这就引出了 Gitlab 架构及其工作原理的主题。

GitLab实例

你有一个 Gitlab 实例,或者说 Gitlab 服务器,它托管着你的应用程序代码、管道以及基本上所有的配置。所以它知道需要做什么。

GitLab 运行器


连接到该 Gitlab 实例的有多个 Gitlab 运行器,它们是连接到 Gitlab 服务器机器的独立机器,实际上是执行管道的机器。

因此Gitlab 服务器知道需要做什么,并且Gitlab 运行器实际上会执行此操作
GitLab 架构

托管或 SaaS

www.gitlab.com实际上是一个托管的 Gitlab 实例它提供了多个现成的托管运行器。 这些运行器均由 Gitlab 维护,因此您无需任何设置和配置即可使用此托管设置运行管道。

自我管理

这对于起步来说已经足够了,但是当然对于您自己的组织,您可能希望自己管理跑步者或整个设置

因此,您也可以创建部分或完全自我管理的 Gitlab 设置:
托管与自我管理

在本速成课程中,我们将使用 GitLab 的托管基础​​架构和免费功能来构建我们的发布流水线。因此,我们无需自行配置任何内容。👍

管道配置 - .gitlab-ci.yml

现在的问题是如何创建 Gitlab CI/CD 流水线?🤔

好吧,按照配置即代码管道即代码的概念,整个管道将以代码编写,并以简单的 YAML 文件形式托管在应用程序 git 存储库本身中。

并且该文件必须名为.gitlab-ci.yml,以便 Gitlab 可以自动检测该管道代码并执行它,而无需我们站点进行任何额外的配置工作:
管道已编写脚本

因此,在项目存储库的根目录中,我们将创建这个 YAML 文件,并在其中写入所有管道配置,我们实际上
也可以直接在 Gitlab UI 中执行此操作,因此我们不必在编辑器和 Gitlab 之间来回切换。
GitLab 编辑器

工作

CI / CD 管道中的任务(例如running tests等)被配置为所谓的“作业”building an imagedeploying to a server

职位 1
工作 2

因此,作业是.gitlab-ci.yml 文件最基本的构建块。它们定义了要做什么

每个作业都有一个名称,并且在作业内部我们有几个
参数或几个属性或我们想要为作业配置的东西。

作业的第一个属性,也是唯一必需的属性,就是所谓的脚本。脚本基本上就是列出该作业应该执行的所有命令的地方:
管道配置基本结构

例如,对于“运行测试”,我们需要为我们的 Python 演示应用程序执行“make test*”。这是运行测试需要执行的命令,因此我们将编写该命令:
管道配置示例

然而,为了成功运行,我们需要做几件事。

但对于实际的演示部分,让我们继续观看视频,以便您可以更轻松地跟进:🤓

▬▬▬▬▬▬ 参考 🔗▬▬▬▬▬▬▬
► 我们为其构建 CI/CD 管道的 Git repo:https://gitlab.com/nanuchi/gitlab-cicd-crash-course

▬▬▬▬▬▬ 课程先决条件 ▬▬▬▬▬▬▬
💡 Docker - 在这里学习:► https://youtu.be/3c-iBn73dDE
💡 YAML - 在这里学习:► https://youtu.be/1uFVr15xDGg
💡 Git 基础知识

希望您能在本初学者教程中学到很多东西!


喜欢、分享并关注我😍以获取更多内容:

文章来源:https://dev.to/techworld_with_nana/gitlab-cicd-for-beginners-free-course-2mee
PREV
Kubernetes 架构简述
NEXT
DevOps 路线图 - 如何成为 DevOps 工程师