Jenkins 对SCM的配置中, 无法通过自己主动的向SCM poll的方式来实现per-commit的workflow。
但可以通过在SVN的服务端部署一个post-commit hook,由该hook来触发Jenkins对应job的一次执行,来实现该workflow。
也就是通过将整个事件的发起者由Jenkins主动的poll, 改为由SVN的hook来触发Jenkins的执行。
下面是一个取自perl脚本中一个语句:
`wget 'http://JenkinsURL/job/hook/buildWithParameters?SVN_REVISION=$rev'`;
$rev 变量可以有hook 脚本自动得到。
通过这种方式,就可以触发在Jenkins 中“hook” job的执行,并正确的赋值与job中的参数:“SVN_REVISION”。
这样在“hook” job中就可以同步版本库到该revision。 然后执行后续的build, test等需要的流程。
实现per-commit的workflow。