2

我们正在使用安装在 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"

这样做的正确方法是什么?

4

2 回答 2

2

您可以调用svnlook dirs-changed以获取已提交修订中的更改路径。将此命令的输出通过管道传输到grep“branches/b”并搜索。如果命令的输出有“/branches/b”,则运行该作业。退出,否则。

检查此问题以获取示例代码:Post-commit hook failed (exit code 3) with output

于 2014-01-15T13:24:10.330 回答
0

您可以Poll-SCM在 Jenkins 作业中使用该选项。将轮询间隔设置为每分钟* * * * *,或者您可以将轮询间隔设置为 5 或 10 分钟。每次轮询都会检查你的 svn 分支是否有变化。如果有变化,构建将被触发,否则什么都没有。这个选项可以在项目配置页面的选项卡下找到Build Triggers

于 2014-01-15T13:06:27.427 回答