0

我们是一个相对缺乏经验的开发团队,试图以“正确的方式”做事。我们将 Github 与 AWS 和 CodeDeploy 一起用于多个基于 PHP 的 Web 应用程序。当主分支更新时,我们正在使用 Github 的自动部署和 CodeDeploy。

我们在不同的 AZ 中有两个生产 EC2 Web 服务器以及一个 EC2 暂存服务器。

它目前的工作方式如下:

我们在分支中编写代码,我们推送到 GitHub,我们合并到“master”,然后启动 CodeDeploy 以写入我们可以测试它的登台服务器。一旦我们对其进行了测试,我们就会手动启动 CodeDeploy 以写入生产环境(使用相同的提交 ID)。

问题是,如果测试出现问题,并且我们有另一个分支等待合并和测试,那么一切都会备份吗?

我们显然做错了什么。我们正在写入 master 分支以利用 GitHub 的自动部署,但我认为 master 仅在准备好部署时才写入?

有人可以帮助我们并让我们直截了当吗?

谢谢

4

1 回答 1

2

创建另一个名为“livecandidate”的分支,该分支将每个新功能分支合并到其中

每次将功能分支合并到“livecandidate”中时,将“livecandidate”拉入您的代码部署流程并安装到测试机器上。

如果测试通过,则将“livecandidate”合并到“master”并开始安装到生产

如果测试未通过,则将合并展开为“livecandidate”(假设不依赖于更改链等)

进行生产安装或取消合并后,尝试下一个功能

一般的想法是永远不会有一个破碎的主人

计算机科学中的所有问题都可以通过另一个层次的间接来解决 - David Wheeler

于 2016-02-26T10:08:20.663 回答