如何在JenkinsFile多分支管道中使用正则表达式?

时间:2019-01-15 10:35:12

标签: jenkins jenkins-pipeline

我有一个多分支管道詹金斯文件。我希望能够使用自定义工作区,其中包括:

pipeline {
    agent {
        node{
            label 'windows-node'            
            customWorkspace "${env.BRANCH_NAME}"    
        }
    }
    //...
}

我希望能够提取分支名称的一部分以进行正则表达式。

我的分支机构具有以下结构:

  • 开发
  • 功能/ BR-1-some-text
  • bugs / BR-5-some-text

如果存在的话,我希望我的工作空间仅为BR-X,所以在我的情况下:

  • 主人
  • 开发
  • BR-1
  • BR-5

我完全有能力做一个正则表达式来从文本中提取该正则表达式,但是我不知道如何提取此正则表达式并将其用作customWorkspace。

有什么主意吗?

1 个答案:

答案 0 :(得分:1)

如果理解正确,我会像这样在管道中使用条件检查,如果分支不是这种模式,我会中止管道。

when {
                not {
                    anyOf {
                        branch 'feat/*';
                        branch 'feature/*'
                        branch 'bug/*'
                        branch 'bugfix/*'
                        branch 'release/*'
                        branch 'hotfix/*'
                        branch 'PR-*'
            branch 'e2e/*'
            branch 'develop'
            branch 'fix/*'
                        }
                    }
                }

或者你也可以使用

when { branch pattern: "release-\\d+", comparator: "REGEXP"}