假设Hudson作业检出2个SVN目录:
https://foo.com/packages (root is https://foo.com/packages) -> "packages" in workspace
https://bar.com/temp/Hudson (root is https://bar.com/temp) -> "Hudson" in workspace
我尝试了不同的东西,在网上浏览了答案,但我仍然无法让这两件事情起作用:
1)防止“Hudson”中的任何提交触发构建: 我在“排除区域”中尝试了几种路径组合但没有成功。
2)阻止消息中包含“CR:”的任何提交触发构建: 我在“Excluded Commit Messages”字段中尝试了“\ bCR:\ b”和其他内容,但它不起作用。
谢谢!
答案 0 :(得分:0)
为什么不尝试另一个方向?在SVN中编写一个钩子脚本,仅在需要时调用Hudson。对于来自Hudson的提交,请不要触发构建。
答案 1 :(得分:0)
1-1)一种简单但又有点脏的方法是,有两个作业,第一个检测到一个存储库中的更改并触发第二个作业。第二个作业下载所有需要的源并运行构建。
亲:容易理解,没有多少摆弄。 缺点:你要么必须从一个存储库结账两次,要么找到一种可靠的方法将来源从job1复制到job2(例如Clone Workspace SCM),两个工作
1-2)在Hudson中配置一个存储库,并在第一个构建步骤中检查第二个存储库中的源。
亲:一份工作,简单的解决方案 con:您可能需要硬编码密码,错过了使用Hudson支持颠覆的美妙。
2)\bCR:\b
看起来不像正则表达式。我建议您尝试类似.*CR:.*
的内容,如果CR:必须位于第^CR.*
行的开头
This page about regular expressions帮助我深入了解正则表达式,但它也包含初学者指南。
答案 2 :(得分:0)
正则表达式必须与要排除的路径完全匹配。它不能只是目录的名称。此外,它还必须包含一个前导斜杠。
例如,假设构建提交库并且提交不应该触发另一个构建。
SVN中目录的位置:
http://subversion.xyz.com/MyProject/lib
“排除区域”框中的内容:
/MyProject/lib/.*