一尘不染

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

jenkins

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

if(env.BRANCH_NAME ==~ /release.*/){

     stage("Deploy"){

        echo 'Deployed release to QA'

     }

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

*release*

(表示其中包含释放字符串的任何分支)。如何实现?

以及类似的如何实现:-

如果分支除了开发之外,什么都不是,请掌握,发布(模式)。


阅读 581

收藏
2020-07-25

共1个答案

一尘不染

如果您使用的是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'
    }
}
2020-07-25