我们在git中有一些代码,我开始设置Jenkins来抓住我们的分支并尝试编译.自从他们最后一次建造以来,似乎有些分支机构可能已经开始腐烂,因为它们未能完成制造.
我想建立所有找到的分支,除了排除的列表.詹金斯有可能吗?这将让我开始运行,然后在我尝试修复它们时再回来启用更多分支.
到目前为止我尝试过的
前瞻性的正则表达式
看看'Git> Branches to build'选项我希望我可以用以下代码替换默认的'**'通配符:使用http://rubular.com/进行一些挖掘和双重检查表明以下可能会做我想要的.
:^(?原点/排除\ - 这个\分枝\ .v1 |原点/排除\ - 这个\分枝\ -too.v2)(\ S +)
现在假设正则表达式引擎在后台运行.我希望它可以理解前瞻,但如果不能解释为什么这个方法失败了.它似乎构建了所有分支,包括我试图排除的分支.也许我只需要找一些调试?
在这里寻找类似的问题
我遇到了Jenkins/Hudson Build All Branches With Prioritization,似乎包含了一个可能的解决方案,其中一些添加了一个反向选项来分支匹配https://github.com/jenkinsci/git-plugin/pull/45听起来像我需要的.可悲的是,这似乎不是我所拥有的詹金斯版本,这很奇怪,因为2011年很久以前.
我正在使用的系统
Ubuntu LTS 14.04.詹金斯诉.1.611.用于制作C/C++代码的GNU工具链.
Luk*_*age 10
我需要使用 Jenkins 工具“通过正则表达式过滤分支”,并且我发现该正则表达式的风格仅适用于反向引用。因此,根据Jesper 的回复和这个问题,我在这里又做了两个例子:
^(?:.*release\/\d+.\d+.\d+(?!.))$
// check all branches like "release/0.0.0" or "origin/release/1.2.3"
^(?:.*release\/\d+.\d+.\d+_any)$
// check all branches like "release/0.0.0_any" or "origin/release/1.2.3_any"
Run Code Online (Sandbox Code Playgroud)
我希望这对某人有帮助
编辑-新示例
^(?:origin\/develop|origin\/master|origin\/release\/\d+\.\d+\.\d+(?!.)|origin\/release\/\d+\.\d+\.\d+(?:_uat|_preprod))$
Run Code Online (Sandbox Code Playgroud)
或者
^(?:.*develop|.*master|.*release/\d+\.\d+\.\d+(?!.))$
Run Code Online (Sandbox Code Playgroud)
如何使用
^(?!.*master).*$
Run Code Online (Sandbox Code Playgroud)
作为分支说明符.这个正则表达式意味着所有分支都不匹配主.
分解:
^(?!.*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
Run Code Online (Sandbox Code Playgroud)
相关:https://stackoverflow.com/a/18709097/109305
| 归档时间: |
|
| 查看次数: |
13009 次 |
| 最近记录: |