当前使用Dev管道(Jenkins)部署和测试了应用程序
源代码位于GitLab的develop
分支中,紧跟Gitflow workflow
在创建develop
分支之前,QA管道将在标记release
分支中的特定提交之后触发构建,测试和部署,如下所示:
按照Git流程,理想情况下,质量检查管道应在工件(${release_num}-${JenkinsBuildNum}-SNAPSHOT.jar
)上触发,而不是在develop
分支中的git commit上触发。
将应用程序移至质量检查空间进行质量检查小组的测试后,
1)开发团队是否不应该在develop
分支中创建任何新的提交?除非质量检查小组发现任何错误
2)QA管道生成的工件的命名约定应该是什么?开发管道会生成名称为${release_num}-${JenkinsBuildNum}-SNAPSHOT.jar
答案 0 :(得分:0)
我不确定我是否正确理解了您的问题的说明,因此我尝试重新措辞:
develop
分支上标记一个提交将触发质量检查管道/构建,该管道/构建将从该提交构建您的应用并将其部署到质量检查空间,以便测试人员可以安装和测试它。现在,您的问题似乎是:
开发团队是否必须等待(“代码冻结”)提交到develop
分支,直到测试人员完成测试?
如果您问我上面的描述,我的答案将是:
将来尝试将git flow工作流程用作git分支模型。
对于您当前的问题,只需根据您在develop
分支上标记的提交创建另一个分支,并将分支命名为release
。
现在,开发人员可以继续正常处理新功能,并将更改提交到您的develop
分支。
如果测试人员发现任何需要修复的错误,则可以在release
分支上进行此操作。修复所有问题后,您可以从发行分支构建经过测试的应用程序版本。
完成操作后,请不要忘记将您在release
分支上所做的错误修复合并回develop
分支。
在澄清问题后进行编辑:
正如我所看到的:如果正确应用Gitflow,它应该可以确实解决您在问题1中提出的问题。
您的日常开发人员工作所添加到的分支是develop
。当您实现所需的所有功能并认为已准备好发布某些内容(从开发人员的角度来看)时,您将创建release
分支,以将当前版本(您的发布候选版本)保存在某个位置,然后让测试人员验证此版本。作为开发人员,您可以继续研究下一个功能,并将更改提交到develop
分支。
当测试人员发现错误时,可以在release
分支上修复该错误。修复所有问题后,您可以从release
分支创建应用程序版本并将其发布给客户。实际发布后,您可以将release
分支推送到master
分支,还可以将release
分支上的更改合并回到develop
。
据我所知,release分支的存在完全是为了避免您的问题1)。
您的流程以这种方式工作的原因很可能是某些原因,但是为什么要在测试人员测试之后 之后创建release
分支?