只有单一的GitLab CI Runner Building

hmj*_*mjd 7 git gitlab-ci gitlab-ci-runner

我最近安装了GitLab并尝试使用GitLab CI.我在我的GitLab服务器中成功启用了GitLab CI并成功安装了CI Runner(在Windows上,如果这是相关的).我为Windows CI 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不是.它似乎只选择一个单一的跑步者.

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

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


GitLab CI 7.12.0 e96755c

Diz*_*ral 7

当触发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
Run Code Online (Sandbox Code Playgroud)

其中job command 1job command 2,等等,都是你喜欢你的工作来进行,和步骤windows,并debian是,你会分配给你的跑步者的标签.基本上你只是用不同的标签创建相同的工作,每个跑步者一个工作.然后,您需要确保每个跑步者都有您为其工作指定的标签.您可以通过在gitlab CI中编辑运行器来完成此操作.

  1. 去跑步者
  2. 向下滚动到"为此项目激活的运行者"
  3. 单击编辑符号
  4. 将标记添加到跑步者
  5. 单击保存

有关标签的更多信息,请参阅gitlab YAML自述文件