Gitlab 合并请求已从带有“的合并列车中删除”;此管道没有阶段/作业。”;

Gitlab 合并请求已从带有“的合并列车中删除”;此管道没有阶段/作业。”;,gitlab,gitlab-ci,Gitlab,Gitlab Ci,当我在合并请求(MR)上单击Start merge train时,GitLab会在MR的系统注释中添加以下内容: @斯弗伦奇克刚刚启动了一列合并列车 太好了。但是,几秒钟后,系统注释中添加了以下内容: @sferencik从合并序列中删除了此合并请求,因为此管道没有阶段/作业。刚才 [我的重点] 管道列表中没有新条目:合并列车甚至没有启动一个 这方面的问题。也谈到了这一点,尽管是在不同的背景下 我做错了什么?我已经将我的.gitlab ci.yml缩减到最低限度,只剩下一个阶段和一个作业,而这是

当我在合并请求(MR)上单击Start merge train时,GitLab会在MR的系统注释中添加以下内容:

@斯弗伦奇克刚刚启动了一列合并列车

太好了。但是,几秒钟后,系统注释中添加了以下内容:

@sferencik从合并序列中删除了此合并请求,因为此管道没有阶段/作业。刚才

[我的重点]

管道列表中没有新条目:合并列车甚至没有启动一个

这方面的问题。也谈到了这一点,尽管是在不同的背景下

我做错了什么?我已经将我的
.gitlab ci.yml
缩减到最低限度,只剩下一个阶段和一个作业,而这是不可能的。我不明白为什么GitLab在执行了之后,应该创建一个“没有阶段/作业”的管道

这不是构建问题:当我单击“开始合并序列”时,我的功能分支(我要合并的分支)上的管道已经成功

此外,如果我关闭,我的夫人有一个合并按钮,而不是启动合并列车,它的工作刚刚好


这是从我们从GitLab 12.0升级到12.1时开始的。

好的,这是由于我的错误:要求每个作业都显式标记为

only:
- merge_requests
我的工作没有这个明确的条件。(事实上,正如我上面所描述的,我很小心地从我的工作中删除了所有条件。)

因此,当我点击Start merge train时,一个新的管道被(或将被)实例化,其中只有那些具有上述条件的作业。在我的例子中,根本没有作业,因此出现错误消息:此管道没有阶段/作业

可能的解决办法是:

  • 关闭预合并生成(设置>常规>合并请求>取消选中合并管道将在合并前尝试验证合并后结果)
  • 修改
    .gitlab ci.yml
    ,用“仅:合并请求”条件标记每个作业(阅读如何构建条件,使作业不限于合并请求)

通过这种方式,在合并请求生成和合并列车生成中有重复的作业。 您可以使用以下配置只生成合并请求或只生成合并序列

合并请求:

merge-request-only:
  stage: build
  script: echo test
  only:
    refs:
      - merge_requests
    variables:
      - $CI_MERGE_REQUEST_EVENT_TYPE == "merged_result"
仅合并列车:

merge-train-only-test:
  stage: build
  script: echo test
  only:
    refs:
      - merge_requests
    variables:
      - $CI_MERGE_REQUEST_EVENT_TYPE == "merge_train"