这个作业无论如何都会在 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
一些标签
这是因为你的第一条规则总是最先发生的。规则在第一场比赛时停止评估。因为
$CI_MERGE_REQUEST_ID
将始终出现在 MR 上,所以第一个规则将始终在您的 $CI_MERGE_REQUEST_LABELS
规则之前匹配。
更改顺序以获得预期效果:
rules:
- if: $CI_MERGE_REQUEST_LABELS =~ /somelabel/
when: never
- if: $CI_MERGE_REQUEST_ID