groovy Jenkins脚本管道中的分支说明符正则表达式

enyaitl3  于 6个月前  发布在  Jenkins
关注(0)|答案(3)|浏览(73)

假设我想在同一个脚本管道下为不同的分支定义管道,如何为特定的分支模式定义正则表达式。例如:

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

字符串
在这里,我想为模式的任何分支定义正则表达式

*release*


(意思是任何分支中有发布字符串)。如何实现这一点?
同样,如何实现类似的东西:
如果分支不是开发、主控、发布(模式),则使用。

vddsk6oq

vddsk6oq1#

如果你使用的是groovy,你可以使用以下命令

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

字符串
如果要匹配除developmasterrelease之外的任何分支名称,可以使用the following regex

if ((env.BRANCH_NAME =~ '^((?!develop|master|release).)*$').matches()) {
    stage("Deploy"){
        echo 'Deployed release to QA'
    }
}

fnx2tebb

fnx2tebb2#

您可以使用此正则表达式来匹配分支名称,如developreleasehotfix

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

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

字符串

hwazgwia

hwazgwia3#

如果你不使用groovy,你可以像下面这样做:

stage('build') {
        when {
            **expression {
                !env.BRANCH_NAME.startsWith('release')
            }**
        }
        steps {
            ...
        }
}

字符串

相关问题