一尘不染

我如何配置Jenkins来构建除不包括的几个分支以外的所有分支?

jenkins

我们在git中有一些代码,我开始设置Jenkins来获取我们的分支并尝试进行编译。自从上次建立以来的几年中,似乎有些分支可能已经开始腐烂,因为它们无法完成制作。

我想建立所有找到的分支,除了排除分支列表。詹金斯有可能吗?这将使我开始运行,然后在尝试修复它们时回来启用更多分支。

到目前为止我尝试过的

正则表达式

看着“
Git>建立分支”选项,我希望可以用:替换默认的’**’通配符。对http://rubular.com/进行一些深入研究和仔细检查后,发现以下内容可能会满足我的要求。

:^(?! origin / exclude \ -this \ -branch \ .v1 | origin / exclude \ -this \
-branch \ -too.v2)(\ S +)

现在,这里有一个关于在后台运行的正则表达式引擎的假设。我希望它可以理解前瞻性,但是如果不这样做,则可以解释为什么此方法失败。它似乎建立了所有分支,包括我尝试排除的分支。也许我只需要找到更多调试功能?

在这里寻找类似的问题

我遇到了Jenkins /Hudson使用优先级构建所有分支,这似乎包含了一种可能的解决方案,其中一些向分支匹配https://github.com/jenkinsci/git-plugin/pull/45添加了一个 反向
选项,听起来像我需要的。可悲的是,这似乎不是我所拥有的詹金斯版本,这很奇怪,因为2011年已经很久了。

我正在使用的系统

Ubuntu LTS 14.04。詹金斯版 1.611。GNU工具链可生成C / C ++代码。


阅读 166

收藏
2020-07-25

共1个答案

一尘不染

怎么样使用

^(?!.*master).*$

作为分支说明符。此正则表达式表示所有不匹配master的分支。

分解:

^(?!.*master).*$
^                ---> beginning of string
 (?!        )    ---> negative lookahead find all that doesnt match
    .*           ---> zero or more of 'any' character
      master     ---> should not match master
             .*$ ---> will match anything to the end of string
2020-07-25