“规则”下的 GitLab CI“何时:从不”不会阻止管道触发

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

GitLab 诉企业版 15.0.5-ee
我定义了一些阶段,并且需要像连词一样工作的规则。
但我有一个问题,简单地说:

rules:
 - if: ! A
   when: never
 - if: B

不起作用(就像应该根据https://docs.gitlab.com/ee/ci/jobs/job_control.html):
尽管

(! A)
是真的

,它仍然运行管道

但是

rules:
 - if: A && B

确实有效(管道不运行)。第二种选择并不可取,在其他情况下我有

exists
这是不可能的(如果我错了,请纠正我)。

有办法解决吗?

编辑1:

好吧,我解决了存在(检查变量是否为空)部分,但我仍然希望拥有可重用的代码。

我正在使用参考:

.rules:
  rules:
    - if: ! A
      when: never
    - exists:
        - "$ex"
      when: never

rules:
    - !reference [ .rules, rules ]
    - if: $var =~ /^.*abcd.*$/

因为别名和锚点在这里似乎不起作用。如果我想要这个结构,那么我想我需要这个

when: never
部分才能工作。因此关于它的原始问题。如果没有引用,它也不起作用,所以没关系,除非我可以做一些事情来将规则注入
if

gitlab yaml gitlab-ci
1个回答
0
投票

我认为布尔非运算符不存在,请参阅此评论。 尝试一下

rules:
 - if: A != true
   when: never
 - if: B
© www.soinside.com 2019 - 2024. All rights reserved.