Здесь есть две проблемы в декларативных условных выражениях.Во-первых, глядя на:
allOf {
expression{env.BRANCH_NAME != 'master'}
expression{env.AUTO_BUILD == true && env.BUILD_OPT == snapshot && env.BRANCH_NAME !=~ /feature.+/}
}
проблема здесь в том, что !=~
не является допустимым оператором для "не соответствует регулярному выражению" в Groovy.Вы можете заменить его на !(env.BRANCH_NAME =~ /feature/)
следующим образом:
allOf {
expression{env.BRANCH_NAME != 'master'}
expression{env.AUTO_BUILD == true && env.BUILD_OPT == snapshot && !(env.BRANCH_NAME =~ /feature/)}
}
, чтобы достичь желаемого поведения.
Во-вторых, в условном:
expression{env.AUTO_BUILD == false}
выражениипроверяет логический тип в env.AUTO_BUILD
.Если значению присваивается строка 'false'
, тогда проверка типа завершится неудачей, и условное выражение не будет работать так, как ожидается.Ввод значения окружения env.AUTO_BUILD
в виде логического значения env.AUTO_BUILD = false
, а не строки env.AUTO_BUILD = 'false'
исправит это для вас.