2014-02-14 137 views
0

我愿做下面的情形:詹金斯或SVNNotify

  1. 文章后承诺SVN,通知服务器(例如,Node.js的服务器上运行)
  2. 一旦服务器被通知,服务器应该重启。

我可以使用Post commit hook让我知道什么时候发生了svn commit。 但之后,我不知道如何进一步进行。可以使用Jenkins或SVN Notify。 我知道詹金斯可以在提交后生成构建和发送电子邮件,但他们可以通知服务器(node.js服务器)重新启动吗? SVNNotify - 它只能发送电子邮件吗?或者我可以使用它来通知服务器重新启动?

回答

0

或者不是使用push“Hook”,你可以让你的集成服务器“jenkins”做一个常规的“轮询”,这可以通过运行一个轮询你的版本控制系统的工作来实现,

做到这一点是这样的...

  • 工作 - >配置

  • 选择选择的git你的 “源代码管理”/ SVN/CVS等

  • 构建触发器 - >选择“投票SCM”我会推荐一个计划的“H/2 * * * *”,这是每2分钟

  • 然后在你Continuous Integration工作,使其重新部署到服务器,重新启动服务器等

关于cron的日程安排的详细信息 - >How to schedule jobs in Jenkins?

如果你真的想推动的工作,它是由实施了利用张贴在这里提交钩子,说明卷曲詹金斯服务器上的URL - >https://wiki.jenkins-ci.org/display/JENKINS/Subversion+Plugin

脚本

REPOS="$1" 
REV="$2" 
UUID=`svnlook uuid $REPOS` 
/usr/bin/wget \ 
    --header "Content-Type:text/plain;charset=UTF-8" \ 
    --post-data "`svnlook changed --revision $REV $REPOS`" \ 
    --output-document "-" \ 
    --timeout=2 \ 
    http://server/subversion/${UUID}/notifyCommit?rev=$REV 

但我不会推荐这个,因为它很难维护和扩展的逻辑