5

Job 脚本在哪里运行?它是否与 Runner 在同一系统上运行?运行程序如何运行脚本,构建保存在哪里?如果有人能解释 Gitlab CI 的整个流程,那就太好了。

4

1 回答 1

2

是的,您的作业脚本与运行程序在同一系统上运行。但在我更深入之前,我们需要讨论术语。我的团队之前遇到过问题,因为“跑步者”这个词已经超载了。人类通常使用“跑步者”来表示两种不同的事物:

  • gitlab-ci exe 所在的服务器
  • 一个 gitlab-ci 运行器

前者应该是不言自明的;当你想创建一个 gitlab-ci 运行器时,你要做的第一件事是配置一个 VM 并将 exe 放在它的某个地方。

后者需要一些解释。gitlab-ci 跑步者不像 Jenkins 奴隶;他们不是整个服务器。相反,gitlab-ci 运行器就像工作区和 Jenkins 标签的组合。换句话说,gitlab-ci 运行器结合了一个服务器、一个 gitlab 实例、一个执行环境和一组标签。在同一台服务器上拥有多个 gitlab-ci 运行器是完全可能的,实际上也是正常的。

作业脚本与任一类型的运行器完全分离(通过“作业脚本”,我假设您的意思是从.gitlab-ci.yml文件调用的代码)。您从中调用的任何内容.gitlab-ci.yml,实际上是其中的script元素,都将被执行

  • 通过匹配为运行脚本的作业配置的标签的运行器
  • 在安装了该运行器的服务器上
  • 在 shell 或 Docker 或 Vagrant 容器中,取决于运行者

最后,构建保存在安装了运行器的位置。该位置将取决于您将 gitlab-ci 可执行文件放入的文件夹。否则,作业会以类似于 Jenkins 工作区的方式存储在文件系统上。

于 2017-03-18T01:13:23.487 回答