如果存在标签,GitLab CI 会跳过 MR 管道中的作业

问题描述 投票:0回答:1

这个作业无论如何都会在 MR 中运行,这是一个错误吗?

我尝试了从 GitLab 文档中看到的不同组合,但它继续运行或由于语法错误而失败

somejob:
  stage: somestage
  rules:
    - if: $CI_MERGE_REQUEST_ID
    - if: $CI_MERGE_REQUEST_LABELS =~ /somelabel/
      when: never
  script:
    - echo $CI_MERGE_REQUEST_LABELS

无论如何,作业都会运行,我可以看到标签在那里

$回显$CI_MERGE_REQUEST_LABELS

一些标签

label gitlab-ci jobs
1个回答
0
投票

这是因为你的第一条规则总是最先发生的。规则在第一场比赛时停止评估。因为

$CI_MERGE_REQUEST_ID
将始终出现在 MR 上,所以第一个规则将始终在您的
$CI_MERGE_REQUEST_LABELS
规则之前匹配。

更改顺序以获得预期效果:

  rules:
    - if: $CI_MERGE_REQUEST_LABELS =~ /somelabel/
      when: never
    - if: $CI_MERGE_REQUEST_ID
© www.soinside.com 2019 - 2024. All rights reserved.