2013-02-26 52 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