2012-03-08 91 views
19

我们正在尝试使用Git/Github设置自动部署环境。我们有3种不同的环境;本地,测试和生活。当我们在本地添加新功能时,我们首先将文件上传到测试服务器以测试新创建的功能。如果一切正常,我们将所有文件上传到现场服务器。但是这个“上传”过程并不是一个完美的解决方案,因为我们有时会忘记上传一些文件。顺便说一句,我们也有iPhone和Android的移动应用程序,所以移动可能是我们的第四个环境。使用Git/Github进行部署

我们试图做的是设置一个自动部署环境。当我们提交新功能测试服务器时,在测试这个新功能之后,我们要将它推送到活动服务器。

测试服务器上可能会有很多提交,但我们希望将特定提交推送到活动服务器。我们无法找到如何应对3-4环境而不是乱码。我们如何将正确的代码推送到现场服务器?我们将如何管理我们的测试和现场服务器?有没有什么好的资源可以告诉你如何用Git/Github建立不同的环境和部署过程?有没有什么文章可以告诉我们一步一步做什么?

我读过这些文章,但没有一篇告诉我们如何应对本地,测试和现场环境。

编辑2012-03-09:我发现http://beanstalkapp.com/http://springloops.com,他们似乎都在部署非常好。我不确定我是否可以信任这些服务,但他们都完全按照我的意愿去做。我会测试两者并在这里分享我的结果来通知每个人。

+2

Git不是部署工具。有很多工具更适合这个目标。你可以做的是将这些结合在一起。 – Ikke 2012-03-08 14:51:42

+1

我知道Git不是部署工具,但许多开发人员正在使用Git *,这是一种部署工具。我们使用Github来存储我们的代码,所以我们认为使用Git/Github作为部署工具会很好。 – 2012-03-08 14:54:55

+0

这个问题非常适合于[服务器故障](http://serverfault.com) - 例如[this](http://serverfault.com/q/142729/105371)问题(在那里很多类似的问题之一) )。 – 2012-03-08 14:57:09

回答

8

我终于找到了我一直在寻找。 http://beanstalkapp.com似乎是最好的选择。它具有自动部署功能并支持Git。经过一个星期的测试,我可以说它运行非常稳定和快速。谢谢大家帮助我,并试图让我看到方式。

+0

看起来人们可以在30天内免费试用最昂贵的免费计划。 – 2013-12-04 04:20:17

4

这听起来像你需要一个Continuous Integration系统。我与JenkinsWebistrano都取得了巨大成功。

关于“我们应该复制哪些文件?”问题。你还在使用git标签吗?如果没有,开始使用它们!

2

git是否是正确的选择,是一个很好的问题。

但是,如果你打算这样做,你应该通读gitworkflows手册页。具体来说,它会推荐什么以及听起来正确,因为您需要将每个单独的“事物”开发为主题/功能分支,然后在完成后将该分支合并到正确的树中。这可以让你将事情分离出来,这样你就可以将需要的和稳定的合并起来,不合并不需要的东西。

0

我目前正在以这种方式使用git,并且刚发布了一篇关于here的博客文章。

我通常所做的是使用post-receive钩子来查找推送到发布分支中的提交,并在找到时使用git archive命令部署代码库。

如果你有多个开发人员在一个项目上工作,或者它是一个庞大而复杂的代码库,那么对于小型项目来说,这是很好的。我建议像之前的评论中建议的那样使用Jenkins这样的持续集成系统。

有一个看看这个,看看它是否适合你的需要(包括一个简单的bash部署脚本)

干杯

2

我最终创建了自己的基本部署工具,它会自动从回购中拉下新的更新 - https://github.com/jesalg/SlimJim - 我不认为它完全适合您的需求,但您可以阅读它的设置方式,也许你可能会得到一些它的想法。