Groovy — Как регулярно выражать строку с подстрокой QA?

#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'))