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 基本概念:
- 管道、工作、
- 阶段
- GitLab 运行器和执行器
- 变量(变量和文件类型)
- Docker 中的 Docker
什么是 GitLab CI/CD?
首先,什么是 Gitlab CI/CD,以及为什么你应该关心它?
GitLab 平台总体上致力于成为 DevOps 平台或为您的应用程序构建 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
它们都有各自的优缺点,但使用 Gitlab 为你的应用程序构建 CI/CD 管道的一个很大的优势是你已经在 Gitlab 上拥有你的代码,因此这是你团队中软件开发流程的扩展,你也可以在同一平台上构建 CI/CD 管道:
因此,您的团队已经在使用 Gitlab,您的代码也在那里,所以这基本上是一个附加功能,您可以使用它来扩展 Gitlab 上的工作流程,而不需要为此使用单独的工具。👍
除此之外,Gitlab 还允许您在无需任何设置工作的情况下开始使用,并且将管道作为应用程序代码的一部分,从而使扩展变得非常无缝,与 Jenkins 相比,例如,您必须设置和配置 Jenkins 服务器,创建管道,然后将其连接到 Git 项目:
使用 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 之间来回切换。
工作
CI / CD 管道中的任务(例如running tests
、等)被配置为所谓的“作业”:building an image
deploying to a server
因此,作业是.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