首页 > 解决方案 > GitLab CI yml 检查值是否在工作流规则的数组内

问题描述

我必须在触发管道之前对其进行验证。验证的一个标准是 CI/CD 变量是否具有可接受的值之一。有没有办法确定它是否匹配正确的值?

我试图创建一个值数组,然后在工作流规则中检查它,但从其他问题中不清楚如何做到这一点。

所以它应该是这样的:

#WARNING: invalid yml!
variables:
  ValidValues: ["Value1", "Value2", "SomeOtherValue"]

workflow:
  rules:
    - if: ValidValues contains $GivenValue
      when: always

标签: yamlgitlab-ci

解决方案


搜索这个问题,我发现我可以将允许的值添加到一个正则表达式中,我可以在其上检查工作流规则。最后它看起来像这样:

workflow:
  rules:
    - if: $GivenValue =~ /\b(Value1|Value2|SomeOtherValue)\b/
      when: always
    - when: never

不幸的是,我在最初的方法中没有找到解决方案(将允许的值添加到数组中,然后查找它们),但这也有效。


推荐阅读