我们是一个相对缺乏经验的开发团队,他们正在努力做正确的事情'。我们将Github与AWS和CodeDeploy一起用于多个基于PHP的Web应用程序。当主分支更新时,我们正在使用Github与CodeDeploy的自动部署。
我们在单独的AZ中有两个生产EC2 Web服务器以及一个EC2登台服务器。
目前的工作原理如下:
我们在分支中编写代码,我们推送到GitHub,我们合并到' master'然后启动CodeDeploy写入我们可以测试它的临时服务器。一旦我们测试了它,然后我们手动启动CodeDeploy以写入生产(具有相同的提交ID)。
问题是,如果测试带来了问题,并且我们有另一个分支等待合并和测试,那么一切都会得到备份吗?
我们显然做错了什么。我们正在写主分支以利用GitHub的自动部署,但我认为只有在准备好部署时才能写入master?
有人可以帮助我们并让我们直截了当吗?
由于
答案 0 :(得分:2)
创建另一个名为“livecandidate”的分支,此分支将每个新功能分支合并到其中
每次将功能分支合并到“livecandidate”时,将“livecandidate”拉入代码部署流程并安装到测试计算机。
如果测试通过,则将'livecandidate'合并到'master'并启动安装到生产
如果测试未通过,则将合并解除为“livecandidate”(假设不依赖于变更链等)
执行生产安装或取消合并后,请尝试下一个功能
一般的想法是永远不会有一个破碎的主人
计算机科学中的所有问题都可以通过另一个间接层面来解决--David Wheeler