如何使用Jenkins和SVN实现持续交付

时间:2012-03-23 15:31:31

标签: svn deployment continuous-integration hudson jenkins

我正在阅读持续交付,或哲学/惯例,即提交源控制目录触发CI构建,如果构建失败,那么所有开发都会冻结,直到提交者修复问题为止 - 提交并修复构建。我真的,真的喜欢这种心态。

我们使用Jenkins作为CI服务器和SVN作为SCM(这些是公司指定的“标准”技术,所以这里没有选择技术的余地。)

我想知道如何实现这一目标。我已经为Jenkins安装了Subversion插件和Tagging Subversion插件,但是没有看到我可以在哪里设置SVN触发器来启动构建,这两个插件的文档都没有表明它们甚至具有此功能

即使我想到这一点,我还需要一种方法来在构建失败的情况下冻结SVN(这样其他开发人员就不会继续检查代码并重新触发失败的构建)。

我在这里要求太多了吗?或者我错过了正确的插件?提前谢谢!

2 个答案:

答案 0 :(得分:1)

Subversion插件包含有关如何使用它的内联帮助。转到工作配置 - >源代码管理 - >检查颠覆。您将看到Subversion插件的表单条目,单击表单条目附近的?标记。

冻结构建:我认为你不应该依赖硬'锁'(例如阻止提交的SVN触发器)。使用Email-Ext Plugin,您可以配置为发送各种构建事件的电子邮件。例如,Jenkins可以通过电子邮件发送给“罪魁祸首”(人们,他们的提交破坏了构建)。根据我的经验,有人应该不时检查构建系统,以检查是谁破坏了构建并“ping”它们。

答案 1 :(得分:0)

  

我需要一种在构建失败的情况下冻结SVN的方法

虽然我认为这是不好的做法,但......口味可能有所不同。防止提交的防弹方法

  

预提交挂钩在提交事务之前运行   升级到新版本。通常,这个钩子用于保护   针对因内容或位置而不允许的提交(例如,   您的站点可能要求对某个分支的所有提交都包含一个   来自错误跟踪器的票号,或传入的日志消息   是非空的。)

     

如果预提交挂钩程序返回非零退出值,则   提交被中止,提交事务被删除,等等   打印到 stderr会被编组回客户端

  • 与Jenkins交互时,返回非零退出代码和描述性文本,而构建失败,成功构建时返回零