我最近安装了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但没有成功 .
Update 1: Debian CI Runner现在正在执行,但Windows CI Runner却没有 . 它似乎只选择一个单一的跑步者 .
Update 2: 已升级到'GitLab CI 7.14.1 2dee1b3'但相同的行为仍然存在 .
Update 3: 在Scientific Linux机器上增加了第三名跑步者 . 它已注册并分配了项目,但只执行了一个运行程序(目前是Debian CI Runner) .
GitLab CI 7.12.0 e96755c
2 回答
当触发gitlab CI的构建时,它将执行.gitlab-ci.yml文件中列出的作业 . 将这些作业视为构建中的独立,并发步骤 . 这些工作由任何能够完成该工作的可用跑步者执行 . 然而,我认为你被绊倒的地方是,一份工作只会完成一次,而且会由第一位可用的跑步者完成 . 将跑步者视为资源池,而不是构建步骤 . 拥有多个运行程序允许您并行执行作业 .
如果每个跑步者每次都要执行一项作业,请尝试使用标签 . 例如 . :
其中
job command 1
和job command 2
等是你希望你的工作要执行的步骤,而windows
和debian
是你只是用不同的标签创建相同的工作的标签,每个跑步者一个工作 . 然后,您需要确保每个跑步者都有您为其工作指定的标签 . 您可以通过在gitlab CI中编辑运行器来完成此操作 .转到跑步者
向下滚动到"Runners activated for this project"
单击编辑符号
将标签添加到跑步者
单击“保存”
See the gitlab YAML readme for more on tags
它作为源代码或简单的omnibus包分发,以便在其中一个受支持的Linux发行版上安装 . 但是,有些地方使得它很难使用,其中一个是:
Try to use Docker.
重要的是,每次构建项目时,它都将在干净的环境中运行,而不会遗留以前的构建 . 只需几个简单的命令,您就不必安装任何依赖项,因为Docker将下载运行测试所需的所有内容 .
希望这可以帮助 .