7

我最近安装了 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 运行器)。


GitLab CI 7.12.0 e96755c

4

2 回答 2

7

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

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

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

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

Wherejob command 1job command 2等是您希望您的工作执行的步骤,windows并且debian是您将分配给跑步者的标签。基本上,您只是创建具有不同标签的相同工作,每个跑步者一个工作。然后,您需要确保每个跑步者都有您为其工作指定的标签。您可以通过在 gitlab CI 中编辑运行器来做到这一点。

  1. 前往跑步者
  2. 向下滚动到“为此项目激活的跑步者”
  3. 点击编辑符号
  4. 将标签添加到跑步者
  5. 点击保存

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

于 2015-09-15T17:22:25.133 回答
0

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

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

尝试使用 Docker。

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

希望这可以帮助。

于 2015-09-15T15:02:15.693 回答