我们正在处理一个django项目,该项目托管在amazon实例上。它处于非常早期的阶段,因此不断地进行更改,并且应该每天更新一次以上的webapp。现在,开发周期如下所示:
ssh
服务器。尽管如此,我并不认为这是使用远程服务器的最佳方式。
远程服务器上众所周知的开发技术是什么?
发布于 2015-04-18 09:00:37
我认为您需要的是一个持续集成(CI)服务器。您可以托管自己的服务,例如有BitBucket集成的Jenkins,或者使用托管服务,比如有免费计划的CodeShip。
您可以尝试建立自己的脚本集来完成类似的工作,但是业界已经在这方面提供了一个解决方案。
您没有在您的问题中提到测试,但您也可以获得这些CI工具来运行您的测试,所以坏的构建不会进入生产。
发布于 2015-04-18 15:11:24
你的问题有很多可能的解决办法。您可以轻松地编写脚本来自动化流程的步骤,或者使用现有的现成的连续集成解决方案。我将很快描述第一个解决方案,您将编写脚本来自己完成这一任务。
在部署webapp mywebapp的服务器上,编写一个部署应用程序最新版本的小脚本shell mywebapp_deployment_tool
。我建议您保留一个与最新部署版本相对应的专用分支live
或release
,这与开发分支不同。然后脚本的工作将是:
live
分支。kill -HUP
会这样做)。现在,在您的服务器上创建一个部署基础设施存储库所拥有的git,并配置一个git钩子,它将在每次提交到mywebapp_deployment_tool
分支时触发您的live
。
在您的开发存储库中,设置一个git挂钩,它将自动将合并推到live
分支到服务器上的存储库。这反过来将触发部署脚本。
还请注意,可以使用VirtualBox或FreeBSD监狱来设置一个环境,在将更改合并到live
之前,您可以在该环境中测试webapp。
这仅仅意味着不应将该存储库用于开发。
https://softwareengineering.stackexchange.com/questions/279494
复制相似问题