#jenkins #groovy #jenkins-groovy
#дженкинс #groovy #дженкинс-groovy
Вопрос:
В приведенном ниже коде:
print env.gitlabSourceBranch // prints develop
if ((env.gitlabSourceBranch !=~ ".*QA.*").matches()) {
error('Aborting Build - not a QA branch')
}
поток должен выполняться, только если env.gitlabSourceBranch
QA
в нем есть подстрока, в противном случае завершается с ошибкой
если env.gitlabSourceBranch
значение равно develop
, то условие if пытается сравнить с регулярным .*QA.*
выражением, но я получаю ошибку ниже:
hudson.remoting.ProxyException: groovy.lang.MissingMethodException: No signature of method: java.lang.Boolean.matches() is applicable for argument types: () values: []
Как устранить эту ошибку? Должен ли я использовать if(!(env.gitlabSourceBranch ==~ ".*QA.*")){}
?
Комментарии:
1. Да:
if(!(env.gitlabSourceBranch ==~ ".*QA.*"))
илиif(!(env.gitlabSourceBranch =~ ".*QA.*").matches())
. В качестве примечания, это проще (и, возможно, эффективнее) сделать сif(!env.gitlabSourceBranch.contains('QA'))