Регулярное выражение спецификатора ветви в скрипте Jenkins. - PullRequest
0 голосов
/ 14 марта 2019

Предположим, я хочу определить конвейер для разных ветвей в рамках одного скриптового конвейера, как определить регулярное выражение для определенного шаблона ветвей.Скажем, например: -

if(env.BRANCH_NAME ==~ /release.*/){
	 stage("Deploy"){
		echo 'Deployed release to QA'
	 }

Здесь я хочу определить это регулярное выражение таким образом, для любой ветви шаблона

*release*

(имеется в виду любая ветвь со строкой выпуска в ней).Как этого добиться?

И так же, как добиться чего-то вроде: -

если ветвь совсем не разрабатывается, мастер, релиз (шаблон).

Ответы [ 2 ]

2 голосов
/ 14 марта 2019

Если вы используете groovy, вы можете использовать следующее

if ((env.BRANCH_NAME =~ '.*release.*').matches()) {
    stage("Deploy"){
        echo 'Deployed release to QA'
    }
}

И если вы хотите сопоставить любое имя ветви, кроме develop, master или release, вы можете использовать следующее регулярное выражение

if ((env.BRANCH_NAME =~ '^((?!develop|master|release).)*$').matches()) {
    stage("Deploy"){
        echo 'Deployed release to QA'
    }
}
0 голосов
/ 06 июня 2019

Вы можете использовать это регулярное выражение для сопоставления имени ветви, как develop, release, hotfix.

if (branch_name =~ 'develop|hotfix.*|release.*') {

  stage("Deploy") {
        echo 'Deployed release to QA'
    }
}
...