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