2013-02-26 56 views
1

我希望能夠從本地系統(git repo)將文件部署到不同的服務器。Phing部署 - Git回購 - 腳本

我有3個分支。 Materstagingdevelop。每個分支應該部署到相應的服務器。

我的常數:

  • git上沒有安裝任何服務器。所以checking out with post commit hook解決方案將無法工作
  • 不希望每次都檢出整個文件和文件夾。應僅部署來自本地分支的更新文件。
  • 理想情況下,希望直接從分支中提取更新的文件並部署它們,而不是將文件從本地文件系統複製並推送到服務器。
  • 應該是SSH部署。沒有密碼。它使用SSH Keys
  • 我安裝了Phing只是爲了這個目的。但我不確定從哪裏出發,要牢記上述限制條件。
  • 我願意接受任何其他建議,比Phing其他的解決方案
  • 注意,部署從local(Windows)中機remote web server

您可以提供/指向的任何腳本/文章?

謝謝!

+0

爲什麼不製作包/罐子/ RPMs/etc?什麼是目標服務器的平臺? – jchapa 2013-02-26 19:36:24

+0

它的LAMP堆棧。只是PHP文件。 – 2013-02-26 19:37:36

+0

我建議phar'ing(http://php.net/manual/en/book.phar.php)或包(如DEBs/RPMs/etc等,取決於你的平臺,例如http:// www。 ibm.com/developerworks/linux/library/l-debpkg/index.html)。理想情況下,您可以將其納入持續集成過程中。 – jchapa 2013-02-26 19:43:21

回答

0

您可以使用scp task將文件複製到遠程服務器,並使用ssh task在遠程服務器上執行任何需要的操作,例如清除緩存/重新啓動apache /移動webroot符號鏈接。上述要求的唯一缺點是它會推送所有文件,而不僅僅是已更改的文件。要做到這一點,你可以看看FileSync任務

+0

這有助於!謝謝! – 2013-03-10 20:23:32