我们正在开发 mule 应用程序,最近我们被指示遵循 PURE Scrum iegit-flow 分支和开发模型。
以下是我们需要遵循的步骤: 1. 对于每个开发任务(具有分配的 JIRA ID 例如:JIRA-1234),我们需要创建以 JIRA 任务 ID 命名的不同功能分支。
一旦开发完成并在本地测试OK,我们需要将我们的功能分支推送到远程存储库。
Jenkins 构建作业将轮询每个功能分支,并在识别出任何推送事件时构建它。部署后工件版本将保存到 Nexus。
QA 会将各自的功能分支部署到 TEST 环境中,执行自动化/手动测试。如果测试没问题,那么功能分支将被合并到开发中。
在 sprint 结束时,我们将从开发分支创建 RELEASE 分支(其中仅包含当前 sprint 的 TESTED OK 开发)
我在实现这个 100% 时遇到了问题(当然我有点乐观):
如果 QA 需要使用 Jenkins 作业将每个功能分支部署到 TEST 环境中,那么应该已经在 Nexus 中保存了一个具有唯一名称的工件(比如说 4.1.0-JIRA-1234-SNAPSHOT)。为此,我需要使用 4.1.0${JIRA_ID}-SNAPSHOT 修改 POM.xml 文件,并从 maven build 命令传递 JIRA_ID 参数。这是可能的,但是使用这个 POM.xml 文件我们会在创建 RELEASE 时遇到问题(这是因为我们使用了 MVN JGITFLOW:RELEASE-START / MVN JGITFLOW:RELEASE-FINISH)
我们可以将这个责任交给开发人员——当他们针对 JIRA ID 创建新功能分支时,他们会手动将 POM.xml 中的版本修改为 4.1.0-JIRA-1234-SNAPSHOT。这将在功能构建后在 Nexus 中创建工件,并且 QA 可以将其部署到 TEST 并完成测试。问题是在合并时,由于值重叠,更多功能分支可能与 POM.xml 文件发生冲突。
请任何人都可以建议我处理这种情况的最佳方法,并正确遵循 GIT-FLOW 流程吗?