当前位置: 首页 > 面试题库 >

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

邵子平
2023-03-14
问题内容

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

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

     stage("Deploy"){

        echo 'Deployed release to QA'

     }

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

*release*

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

以及类似的如何实现:-

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


问题答案:

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


 类似资料:
  • 问题内容: 我正在尝试将旧样式的基于项目的工作流转换为基于Jenkins的管道。在浏览文档时,我发现有两种不同的语法分别命名为和。例如最近(2016年底)发布的Jenkins网络语法。尽管有一个新的语法版本,Jenkins仍然也支持脚本语法。 现在,我不确定这两种类型的哪种情况最合适。语法将很快被弃用吗?詹金斯管道的未来会是这样吗? 任何可以分享有关这两种语法类型的想法的人。 问题答案: 最初创建

  • 我试图在Jenkins的多分支管道中指定GithubProjectProperty。我试图在选项块中设置一个条目来控制这个值,但没有成功。 管道语法片段生成器建议: 以下各项似乎都不起作用: 1)尝试将属性直接放在选项块中 错误:“属性”部分已从0.8版起重命名。请改用“选项” 2)删除properties关键字,但将选项保留在选项块中 错误:无法将选项定义为映射 3)将GitHubProject

  • 问题内容: 目前,我们使用Jenkins作业DSL在每个Git分支上生成许多Jenkins作业。多分支管道插件似乎是一种有趣的方式,可以使用Jenkinsfiles获得一流的作业生成支持,并减少我们维护的Job DSL数量。 例如,我们有 libwidget-server 和 widget-server 开发分支项目。当libwidget- server构建完成时,将触发widget-server

  • 我正试图在我的maven项目中使用Jenkins主从架构。我有windows机器上的Jenkins master和Linux机器上的slave。现在的问题是,当我运行Jenkins脚本时,它会给我一个错误,比如无法初始化git存储库,因为Jenkins正在尝试执行git。Linux从机上的exe。有人能告诉我怎么解决吗? 以下是我的Jenkins管道脚本和错误日志 错误如下

  • null null 我怎样才能想象这些工作类型之间的关系?还有其他插件支持这些类型吗?

  • 对于一个新项目,我想使用Jenkins CI的新管道功能。我们的Git存储库中有几个分支,应该以同样的方式进行测试。它还应该自动跟踪和处理新的分支。因此,我创建了一个多分支管道作业。但它的配置有两个问题: 1) 为了被Jenkins标记为有效,分行需要一个“Jenkinsfile”。如果这不存在,詹金斯将忽略该分支。有没有办法标记与模式匹配的所有分支,而不需要在其中包含此文件? 2) 每个分支都应