当提供看似有效的YAML时,Gitlab中的Conjunction Logic失败

时间:2019-06-13 22:16:42

标签: gitlab yaml gitlab-ci

我正在尝试使用第7点(连接/分离)在.gitlab.yml文件中设置条件,并与此documentation一起使用,但是我使用的语法一直被拒绝gitlab yml验证程序。

应该发生的是,如果VAR1以'thing'结尾或存在VAR2(即不为null),则应将该作业排除在运行之外。

这是我的YAML文件中的一个片段:

build:
  except:
    variables: 
      - $VAR1 =~ /thing$/ || $VAR2
  script:
      - echo "Hello"

每当我尝试验证此语法时,都会收到以下消息:

Failing Validation

我还尝试了以下(不成功的)变体:

  - $VAR1 =~ /thing$/ || $VAR2 != null
  - $VAR1 =~ /thing$/ && $VAR2 != null (this was just testing an AND condition)

每当我单独列出条件时,它们就会通过验证。

我的语法出了什么问题?有其他方法可以实现我所需的验证吗?对我来说,这就像个虫子。

1 个答案:

答案 0 :(得分:0)

文档中提到:

  

如果仅在“或”下使用多个键,则它们将用作AND。逻辑是:

     
    

(任何引用)AND(任何变量)AND(任何更改)AND(如果kubernetes是活动的)

  

这似乎使any of variables表示列出的每个变量的或,因此应该满足您的要求:

build:
  except:
    variables: 
      - $VAR1 =~ /thing$/ 
      - $VAR2 != null