【发布时间】:2015-05-07 08:22:28
【问题描述】:
我们在 git 中有一些代码,我开始设置 Jenkins 来获取我们的分支并尝试编译。似乎有一些树枝在上次建造后的几年里可能已经开始腐烂,因为它们没有完成制作。
我想构建找到的所有分支,但排除的列表除外。这在詹金斯可能吗?这将让我启动并运行,然后在我尝试修复它们时回来启用更多分支。
到目前为止我已经尝试过什么
带有前瞻的正则表达式
查看“Git > Branches to build”选项,我希望可以用 : 替换默认的“**”通配符。对http://rubular.com/ 进行了一些挖掘和双重检查,这表明以下内容可能符合我的要求。
:^(?!origin/exclude\-this\-branch\.v1|origin/exclude\-this\-branch\-too.v2)(\S+)
现在这里假设正则表达式引擎在后台运行。我希望它可以理解前瞻,但如果它不理解,则说明此方法失败的原因。它似乎建立了所有分支,包括我试图排除的分支。也许我只是需要找到更多的调试?
在这里寻找类似的问题
我遇到了Jenkins/Hudson Build All Branches With Prioritization,它似乎包含一个可能的解决方案,其中一些添加了一个 inverse 选项来匹配https://github.com/jenkinsci/git-plugin/pull/45 的分支,这听起来像是我需要的。可悲的是,这似乎不在我拥有的 Jenkins 版本中,这很奇怪,因为 2011 年是很久以前的事了。
我正在使用的系统
Ubuntu LTS 14.04。詹金斯版1.611。用于制作 C/C++ 代码的 GNU 工具链。
【问题讨论】:
-
这几乎是duplicate of this question。您应该编写一个 匹配 仅要排除的分支的正则表达式(或者更简单的是添加多个“要构建的分支”条目),然后使用“反向”选择策略。
-
@ChristopherOrr 这听起来像是我需要的解决方案。我只是找不到反向选项隐藏的位置。我已经尝试过了,它似乎不起作用,仍然尝试构建排除的分支,但我会坚持下去。您是否应该将您的评论作为答案,以便我可以选择它,或者这不是处理重复项的方式?