关于gitlab CI运行程序

问题描述 投票:0回答:1

我是gitlab CI的新手,对它着迷。即使使用docker容器,我也已经设法使管道正常工作,所以我熟悉设置作业和工件的流程。我现在只想了解它是如何工作的。我的问题是关于以下内容的:

赛跑者

实际上一切在哪里发生?我的意思是,哪台计算机正在运行我的构建和可执行文件?我知道Gitlab有自己的共享运行程序供用户使用,这是否意味着如果共享运行程序抢占了我的工作,它将在托管这些运行程序的任何地方运行吗?如果我在笔记本电脑中注册自己的跑步者,并使用该跑步者,我的构建和二进制文件将在我的计算机中运行吗?

工件

为了运行/测试代码,我们需要二进制文件,这些二进制文件从构建阶段就作为工件被抓取。对于构建部分,例如,如果我使用cmake,则在CI.yml文件的脚本部分中,创建构建目录并调用cmake ..依此类推。一旦我的工作成功,如果我想要二进制文件,我必须进入gitlab并自己检索它。所以我的问题是,一切都保存在哪里?我注意到跑步者和我的项目一起创建了refs / pipeline /之类的东西,但这实际上在哪里呢?如何在笔记本电脑中获取这些文件和新目录

工作空间几乎所有事情都在哪里发生?跑步者,处决者,文物?

感谢您的时间

gitlab gitlab-ci gitlab-ci-runner
1个回答
0
投票

[管道中每个作业/步骤中发生的所有事情都发生在运行程序主机本身上,并且取决于您使用的执行程序(shelldocker等),或者直接在Gitlab服务器上。] >

[如果您使用的是gitlab.com,则他们有许多Gitlab团队维护的共享运行者,您可以将其用于项目,但是由于与gitlab.com上的所有人共享,运行作业之前的时间。但是,无论您是自己托管还是使用gitlab.com,都可以为项目创建自己的运行程序。

如果您正在使用shell执行程序,则在作业运行时,您可以在文件系统上的某个位置看到文件,但在该作业完成后将对其进行清理。作业运行时,并不是要访问文件系统。这就是工作脚本的用途。

如果使用的是docker执行程序,则gitlab-runner服务将从您在.gitlab-ci.yml中指定的映像启动docker实例(或使用可配置的默认值)。然后,该作业在该docker实例中运行,并且在作业完成后立即将其删除。

您可以在任何地方添加自己的跑步者-AWS,闲置的备用机器,甚至您的笔记本电脑,以及任何人都可以接班的工作。如果需要,您还可以关闭共享的运行程序,并强制它在您的运行程序之一上运行。

[如果在构建/准备步骤后需要工件,则它是作为上述工作的一部分在运行器上创建的,但是运行器会自动将工件上传到gitlab服务器(或其他实现S3协议的服务例如AWS S3或Minio)。除非您使用的是S3 / minio,否则只能通过gitlab UI界面或API进行访问。但是,在用户界面中,它将显示在任何相关的MR以及“管道”页面上,因此相当容易访问。

© www.soinside.com 2019 - 2024. All rights reserved.