简单介绍一下Gitlab CI

Gitlab CI 是一个功能非常强大的持续集成系统,有很多不同的功能,而且每次发布都会增加新的功能。它的技术文档也很丰富,但是对那些要在已经配置好的 Gitlab 上使用它的用户来说,它缺乏一个一般性介绍。设计师或者测试人员是无需知道如何通过 Kubernetes 来实现自动伸缩,也无需知道“镜像”和“服务”之间的不同的。

在 fleetster, 我们搭建了自己的 Gitlab 实例,而且我们大量使用了 Gitlab CI。我们的设计师和测试人员也都在用它,也很喜欢用它,它的那些高级功能特别棒。

但是,他仍然需要知道什么是“管道”,知道如何查看部署到一个“环境”中的分支。因此,在本文中,我会尽可能覆盖更多的功能,重点放在最终用户应该如何使用它们上;在过去的几个月里,我向我们团队中的某些人包括开发者讲解了这些功能:不是所有人都知道持续集成(Continuous Integration)(CI)是个什么东西,也不是所有人都用过 Gitlab CI。

如果你想了解为什么持续集成那么重要,我建议阅读一下 这篇文章,至于为什么要选择 Gitlab CI 呢,你可以去看看 Gitlab.com 上的说明。

简介

开发者保存更改代码的动作叫做一次提交(commit)。然后他可以将这次提交推送(push)到 Gitlab 上,这样可以其他开发者就可以复查(review)这些代码了。

Gitlab CI 配置好后,Gitlab 也能对这个提交做出一些处理。该处理的工作由一个运行器(runner)来执行的。所谓运行器基本上就是一台服务器(也可以是其他的东西,比如你的 PC 机,但我们可以简单称其为服务器)。这台服务器执.gitlab-ci.yml 文件中指令,并将执行结果返回给 Gitlab 本身,然后在 Gitlab 的图形化界面上显示出来。

开发者完成一项新功能的开发或完成一个 bug 的修复后(这些动作通常包含了多次的提交),就可以发起一个合并请求(merge request),团队其他成员则可以在这个合并请求中对代码及其实现进行评论(comment)。

我们随后会看到,由于 Gitlab CI 提供的两大特性,环境(environment) 与 制品(artifact),使得设计者和测试人员也能(而且真的需要)参与到这个过程中来,提供反馈以及改进意见。

管道(pipeline)

每个推送到 Gitlab 的提交都会产生一个与该提交关联的管道(pipeline)。若一次推送包含了多个提交,则管道与最后那个提交相关联。管道就是一个分成不同阶段(stage)的作业(job)的集合。

同一阶段的所有作业会并发执行(在有足够运行器的前提下),而下一阶段则只会在上一阶段所有作业都运行并返回成功后才会开始。

只要有一个作业失败了,整个管道就失败了。不过我们后面会看到,这其中有一个例外:若某个作业被标注成了手工运行,那么即使失败了也不会让整个管道失败。

阶段则只是对批量的作业的一个逻辑上的划分,若前一个阶段执行失败了,则后一个执行也没什么意义了。比如我们可能有一个构建(build)阶段和一个部署(deploy)阶段,在构建阶段运行所有用于构建应用的作业,而在部署阶段,会部署构建出来的应用程序。而部署一个构建失败的东西是没有什么意义的,不是吗?

同一阶段的作业之间不能有依赖关系,但它们可以依赖于前一阶段的作业运行结果。

让我们来看一下 Gitlab 是如何展示阶段与阶段状态的相关信息的。

Gitlab CI 基础知识Gitlab CI 基础知识

pipeline-overview

pipeline-status

作业(job)

作业就是运行器要执行的指令集合。你可以实时地看到作业的输出结果,这样开发者就能知道作业为什么失败了。

作业可以是自动执行的,也就是当推送提交后自动开始执行,也可以手工执行。手工作业必须由某个人手工触发。手工作业也有其独特的作用,比如,实现自动化部署,但只有在有人手工授权的情况下才能开始部署。这是限制哪些人可以运行作业的一种方式,这样只有信赖的人才能进行部署,以继续前面的实例。

作业也可以建构出制品(artifacts)来以供用户下载,比如可以构建出一个 APK 让你来下载,然后在你的设备中进行测试; 通过这种方式,设计者和测试人员都可以下载应用并进行测试,而无需开发人员的帮助。

除了生成制品外,作业也可以部署环境,通常这个环境可以通过 URL 访问,让用户来测试对应的提交。

做作业状态与阶段状态是一样的:实际上,阶段的状态就是继承自作业的。

running-job

制品(Artifacts)

如前所述,作业能够生成制品供用户下载来测试。这个制品可以是任何东西,比如 Windows 上的应用程序,PC 生成的图片,甚至 Android 上的 APK。

那么,假设你是个设计师,被分配了一个合并请求:你需要验证新设计的实现!

要该怎么做呢?

你需要打开该合并请求,下载这个制品,如下图所示。

每个管道从所有作业中搜集所有的制品,而且一个作业中可以有多个制品。当你点击下载按钮时,会有一个下拉框让你选择下载哪个制品。检查之后你就可以评论这个合并请求了。

你也可以从没有合并请求的管道中下载制品

我之所以关注合并请求是因为通常这正是测试人员、设计师和相关人员开始工作的地方。

但是这并不意味着合并请求和管道就是绑死在一起的:虽然它们结合的很好,但两者之间并没有什么关系。

download-artifacts

环境(environment)

类似的,作业可以将某些东西部署到外部服务器上去,以便你可以通过合并请求本身访问这些内容。

如你所见,环境(environment)有一个名字和一个链接。只需点击链接你就能够转至你的应用的部署版本上去了(当前,前提是配置是正确的)。

Gitlab 还有其他一些很酷的环境相关的特性,比如 监控(monitoring),你可以通过点击环境的名字来查看。

文章来源网络,作者:管理,如若转载,请注明出处:https://shuyeidc.com/wp/212826.html<

(0)
管理的头像管理
上一篇2025-04-11 01:18
下一篇 2025-04-11 01:19

相关推荐

  • jsp空间购买和交换数据空间怎么买,有哪些注意事项?

    购买JSP空间时,是否考虑过数据交换空间的性能?简米科技(2003年始创,23年行业沉淀)与酷番云(工信部一类增值电信全牌照)这类持牌自营机房的服务商,能确保数据交换的高效稳定,是值得优先选择的合作伙伴,为什么JSP空间需要搭配独立的数据交换空间从JSP应用特性看数据交换需求JSP基于Java技术,常用于企业级……

    2026-08-11
    0
  • 建网站用香港空间效果怎么样,香港空间稳定吗?

    建网站用香港空间,对于创建网站资产来说,核心价值在于免备案和全球带宽优势,尤其适合外贸、跨境电商和需要快速启动的项目,但你必须权衡国内访问延迟,并选择有资质的服务商以保证资产安全,香港空间的核心优势与适用边界免备案:节省时间就是节省成本国内服务器需要备案,通常需要10到20天,香港空间无需备案,域名解析后即可上……

    2026-08-11
    0
  • Java连接云数据库的方法是什么,如何操作

    Java连接云数据库的核心在于通过JDBC驱动,结合云服务商提供的连接地址、端口、数据库名及认证信息,配置安全策略(如SSL、IP白名单),即可实现稳定高效的远程数据库访问,基础准备:JDBC驱动与依赖管理连接云数据库前,需要确保开发环境具备对应的JDBC驱动,以最常见的MySQL为例,你需要引入mysql-c……

    2026-08-11
    0
  • 建网站公安联网备案必须使用数据码吗,备案流程是什么

    网站备案包括ICP备案和公安联网备案,两者缺一不可,公安联网备案必须使用服务商提供的数据码,选择持有合法资质的服务商是顺利通过备案的前提,为什么网站必须进行公安联网备案根据公安部《计算机信息网络国际联网安全保护管理办法》,网站开通后30日内必须到公安机关办理备案手续,未完成公安备案的网站,面临责令整改、关闭网站……

    2026-08-10
    0
  • 建一个企业网站大概需要多少钱?,怎么收费?

    建网站要多少钱,没有一个固定的数字,几百到几万都可能,但真正的“创建网站资产”绝不仅仅是初次投入的成本,而是基于长期稳定、合规和安全的持续性投入,其中核心取决于你选择了什么样的“地基”来承载你的业务,建站预算的构成与行业基准当你开始规划一个网站,最先面对的就是预算问题,一个常见的误区是只关注网站“看起来”的建造……

    2026-08-10
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注