只有单一的GitLab CI Runner Building

时间:2015-08-27 09:35:07

标签: 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

2 个答案:

答案 0 :(得分:7)

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

如果每个跑步者每次都要执行一项工作,请尝试使用标签。 E.g:

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中编辑跑步者来完成此任务。

  1. 转到跑步者
  2. 向下滚动到“为此项目激活的运动员”
  3. 点击编辑符号
  4. 将标记添加到跑步者
  5. 点击保存
  6. See the gitlab YAML readme for more on tags

答案 1 :(得分:0)

它作为源代码或简单的omnibus包分发,以便在其中一个受支持的Linux发行版上安装。但是,有些地方使得它很难使用,其中之一就是:

  • 跑步者一次只能同时运行一个。如果您想要运行更多服务器,您可以设置新服务器或创建其他用户来构建作业。

尝试使用Docker。

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

希望这有帮助。