首页 文章

只有单一的GitLab CI Runner Building

提问于
浏览
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但没有成功 .


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 回答

  • 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
    

    其中 job command 1job command 2 等是你希望你的工作要执行的步骤,而 windowsdebian 是你只是用不同的标签创建相同的工作的标签,每个跑步者一个工作 . 然后,您需要确保每个跑步者都有您为其工作指定的标签 . 您可以通过在gitlab CI中编辑运行器来完成此操作 .

    • 转到跑步者

    • 向下滚动到"Runners activated for this project"

    • 单击编辑符号

    • 将标签添加到跑步者

    • 单击“保存”

    See the gitlab YAML readme for more on tags

  • 0

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

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

    Try to use Docker.

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

    希望这可以帮助 .

相关问题