2

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

我要做的是以下几点:

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

到目前为止,从我的谷歌搜索来看,我既可以通过他们提供的 GitHub 的 webhook 进行部署,也可以通过 Capistrano 进行部署。

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

注意:我仍然是编程 n00b,所以请注意我在提问时没有考虑到的任何事情

4

3 回答 3

0

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

于 2012-05-28T23:35:02.887 回答
0

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

  1. 您的 git 存储库的签出代码
  2. 执行任何构建操作
  3. 将站点文件复制到生产环境
  4. 将站点特定文件复制到生产环境
于 2012-05-28T17:07:44.707 回答
0

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

这在 Pro Git 书的关键字扩展部分的git 属性章节中有所介绍:

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

于 2012-05-28T20:37:12.380 回答