我有一个由Gerrit触发的Jenkins构建我想在所有分支上触发,除了master.我应该使用什么正则表达式?
我们在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工具链.
我在插件页面上有一个问题,但这似乎是Jenkins支持的一个更活跃的地方.
当更改被推送到任何分支时,作业将运行,并合并到开发分支,但大约20秒后,作业将注意到合并开发并再次触发作业.这不应该发生,因为开发是在分支建立(反向选择stragety).当它推送到主控或发布的更改时也会发生这种情况,这也应该被排除在外.如果存在合并失败,则作业将启动永不停止的循环,尝试合并分支,直到手动解决冲突.
我也尝试将特定用户排除在触发构建之外,也没有效果.
我开始假设Github插件不尊重选择策略或其他git插件选项.
希望以下信息是帮助我解决这个问题所需要的全部内容.
GitHub Plugin => 1.5
GitHub API Plugin => 1.40
GitHub Pull Request Builder => 1.7
GitHub Authentication Plugin => 0.13.1
Jenkins GIT Plugin => 1.3.0
Jenkins GIT client Plugin => 1.0.5
Run Code Online (Sandbox Code Playgroud)
构建中有趣的配置选项
要建立的分支机构
master,**master,release,**release,develop,**develop
Run Code Online (Sandbox Code Playgroud)
排除的用户
jenkins
ConvergintJenkins
Run Code Online (Sandbox Code Playgroud)
合并选项
? Merge before build
Branch to merge to
develop
Run Code Online (Sandbox Code Playgroud)
禁用子模块处理✓
选择策略
Inverse
Run Code Online (Sandbox Code Playgroud)
构建触发器
? Build when a change is pushed to github
? Poll SCM
Run Code Online (Sandbox Code Playgroud)
Git Polling Log
Polling has not run yet.
Run Code Online (Sandbox Code Playgroud)
Github Hook Log
Started …Run Code Online (Sandbox Code Playgroud) 我需要防止在特定条件下构建特定作业,我该怎么做?
推送到特定存储库并使用 git push --no-verify 推送到 git
git commit -m“检查” git push --no-verify
当我推送到特定存储库中的特定分支时自动禁用构建作业