2014-02-14 186 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 

但我不會推薦這個,因爲它很難維護和擴展的邏輯