我们正在使用安装在linux上的uberSVN。在存储库“ R ”中,我们有不同的分支,我需要触发jenkins作业,以便在特定分支“ B ”上进行提交。在 .... repository / R / hooks / 中有一个名为 post-commit 的文件。文件内容如下:
REPOS="$1"
REV="$2"
wget "http://jenkinsurl/job/project_r/build?tokten=r_token"
上面的脚本在提交repo时调用wget。另一方面,我想触发“分支工作”当且仅当分支“ B ”上的提交不是所有存储库时。 jenkis网址如下:
wget "http://jenkinsurl/job/project_r_b/build?tokten=r_b_token"
这样做的正确方法是什么?
答案 0 :(得分:2)
您可以调用svnlook dirs-changed
来获取已提交修订中的更改路径。将此命令的输出传递给grep
并搜索“branches / b”。如果命令的输出具有“/ branches / b”,则运行该作业。退出,否则。
请检查此问题以获取示例代码:Post-commit hook failed (exit code 3) with output。
答案 1 :(得分:0)
您可以在Jenkin作业中使用Poll-SCM
选项。将轮询间隔设置为每分钟* * * * *
,或者您可以将轮询间隔设置为5或10分钟。每次轮询,这将检查您的svn分支是否有变化。如果有变化,构建将被触发,否则什么也没有。您可以在选项卡Build Triggers
下的项目配置页面中找到此选项。