我正在开发一个 API。我们有 3 个环境。开发(非本地设置)、暂存和生产。
像往常一样,我们在 Dev 上开发一切。完成后,将其推送到登台,在那里进行测试,然后再推送到生产环境。
通过这种方式在 Beantalk 上设置部署:
Dev (Auto Deploy to the server)
Staging (Manual Deploy)
Prod (Manual Deploy)
当我们发布 API V1.0 的第一个版本时。一切都与 SVN 修订号同步。假设所有 3 个环境的修订号为 1000,部署到所有 3 个服务器上。
现在我一直在修复开发环境中的错误。所以现在部署到 Dev 上的修订号是 1200。公司不想将所有这些更改推送到登台和生产。
现在他们想出了紧急的错误。他们只希望将这些错误推送到暂存和生产,而不是我修复并已部署到开发的错误。
在发布 v1.0 之后,我创建了一个标签并复制了所有文件。所以现在我从那个标签中创建了一个分支,将文件签出到我的本地系统并开始修复这个分支上的错误(不确定这是否是正确的做法)。
但是,当我提交更改时,这些更改会自动部署在开发人员上。现在开发人员的修订号是 1201(它是 1200,我之前所做的所有修复,但没有部署到 Staging 和 Prod)。
现在,修订号部署如下所示:
Dev (1201)
Staging (1000)
Prod (1000)
我希望将最新的修复程序部署到 Staging 和 Prod。当我选择 1201 部署到 Staging 和 Prod 时,我猜它会部署从 1001 到 1201 的所有修订版。不仅仅是 1201。
你知道如何处理这个问题吗?有没有更好的做法?