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

Ash*_*ley 2 regex groovy jenkins jenkins-pipeline

假设我想在同一脚本化管道下为不同分支定义管道,如何为某些分支模式定义正则表达式。举例来说:-

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

在这里,我想以这种方式为模式的任何分支定义该正则表达式

(意味着其中包含发布字符串的任何分支)。如何实现这一目标?

同样如何实现类似的目标:-

如果分支不是开发、掌握、发布(模式)。

Yas*_*jaj 5

如果您使用 groovy,您可以使用以下内容

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

如果您想匹配除develop,master或 之外的任何分支名称release,您可以使用以下正则表达式

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