使用git和CI进行多站点部署

时间:2012-05-28 16:47:51

标签: php git github continuous-integration web-deployment

目前,我正在使用github托管我的代码仓库,然后通过FTP将文件复制并粘贴到服务器上,将更新推送到我的网站。但是,我使用的主机允许ssh访问必须有一个更简单的方法来执行此操作。

我要做的是以下内容:

  • 设置一个Jenkins(一个CI),在部署之前检查我的所有代码。
  • 能够从单个仓库部署到多个站点。但是每个站点中都有一个或两个唯一文件(例如其中包含Google Analytics代码的视图)。

到目前为止,我可以通过GitHub提供的webhooks来部署或通过Capistrano进行部署。

所以,我的问题是 什么是设置一切的最佳方法?

注意:我仍然是一个编程n00b,所以要记住在提问时我没有考虑的任何内容

3 个答案:

答案 0 :(得分:0)

在您的存储库中,您可以拥有两个根级文件夹。一个用于站点,一个用于包含站点特定文件。对于每个站点,创建一个Jenkins构建配置以执行以下操作:

  1. 您的git存储库的结帐代码
  2. 执行任何构建操作
  3. 将网站文件复制到生产
  4. 将特定于站点的文件复制到生产

答案 1 :(得分:0)

您可以使用具有clean script的本地存储库,该存储库将在签出版本时根据需要更改这些特定文件中的设置。

Pro Git图书的关键字扩展部分的 git属性章节对此进行了介绍:

http://git-scm.com/book/en/Customizing-Git-Git-Attributes

答案 2 :(得分:0)

您可能会发现使用git-ftp上传更改会更简单。此脚本将服务器上最后上载的提交的名称存储在特殊文件中,当您重新上载时,它仅发送自上次上载的状态以来已更改的文件。文件/目录重命名/删除等内容也可以正确处理。在我们的设置中,我们发现这个脚本比滚动一些更高级的解决方案更容易使用。

相关问题