只有一个 GitLab CI Runner Building

Only Single GitLab CI Runner Building

我最近安装了 GitLab 并正在尝试使用 GitLab CI。我在我的 GitLab 服务器中成功启用了 GitLab CI,并成功安装了 CI Runner(在 Windows 上,如果相关的话)。我为 Windows CI Runner 启用了一个项目,当我提交到存储库时,runner 被执行并且我可以看到构建。

我按照文档安装了第二个 CI Runner(在 Debian 上)。我可以看到 Debian CI Runner 以及 Windows CI Runner 已注册。 Debian CI Runner 分配了相同的项目。但是,当我提交到存储库时,只执行 Windows CI Runner,Debian CI Runner 不会尝试构建。

我犯了什么错误或者有什么额外的配置可以启用它?我已经尝试重新注册 Debian CI Runner 但没有成功。


更新 1: Debian CI Runner 现在正在执行,但 Windows CI Runner 没有。好像select只有一个跑者。

更新 2: 升级到 'GitLab CI 7.14.1 2dee1b3' 但同样的行为仍然存在。

更新 3: 在 Scientific Linux 机器上添加了第三个跑步者。它已注册并分配了项目,但只有一个运行器执行(当前是 Debian CI 运行器)。


GitLab CI 7.12.0 e96755c

它以源代码或简单的综合包的形式分发,可以安装在受支持的 Linux 发行版之一上。但是,有些地方很难使用,其中之一是:

  • 运行ner 一次只能运行一个并发。如果您想要 运行 更多,您可以设置一个新服务器或创建一个额外的用户来构建作业。

尝试使用Docker.

重要的是,每次构建项目时,它都会 运行 在干净的环境中,没有任何以前构建的遗留物。使用几个简单的命令,您不必安装任何依赖项,因为 Docker 将下载 运行 您的测试所需的所有内容。

希望对您有所帮助。

当触发 gitlab CI 的构建时,它将执行 .gitlab-ci.yml 文件中列出的作业。将这些作业视为构建中独立的、并发的步骤。这些作业由任何能够完成该作业的可用运行器执行。但是,我认为您被绊倒的地方是一项工作 只会完成一次,并且由第一个可用的跑步者 完成。将运行器视为资源池,而不是构建步骤。拥有多个运行程序允许您并行执行作业。

如果您希望每个跑步者每次都执行一项工作,请尝试使用标签。例如:

job1:
  tags:
    - windows
  script:
    - job command 1
    - job command 2

job2:
  tags:
    - debian
  script:
    - job command 1
    - job command 2

其中 job command 1job command 2 等是您希望您的工作执行的步骤,windowsdebian 是您要执行的标签将分配给您的跑步者。基本上,您只是在创建具有不同标签的相同工作,每个跑步者一份工作。然后,您需要确保每个跑步者都有您为其工作指定的标签。您可以通过在 gitlab CI.

中编辑 runner 来完成此操作
  1. 前往跑步者
  2. 向下滚动到 "Runners activated for this project"
  3. 点击编辑符号
  4. 为跑步者添加标签
  5. 点击保存

See the gitlab YAML readme for more on tags