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
这是不可能的(如果我错了,请纠正我)。
有办法解决吗?
好吧,我解决了存在(检查变量是否为空)部分,但我仍然希望拥有可重用的代码。
我正在使用参考:
.rules:
rules:
- if: ! A
when: never
- exists:
- "$ex"
when: never
rules:
- !reference [ .rules, rules ]
- if: $var =~ /^.*abcd.*$/
因为别名和锚点在这里似乎不起作用。如果我想要这个结构,那么我想我需要这个
when: never
部分才能工作。因此关于它的原始问题。如果没有引用,它也不起作用,所以没关系,除非我可以做一些事情来将规则注入if
。
我认为布尔非运算符不存在,请参阅此评论。 尝试一下
rules:
- if: A != true
when: never
- if: B