are*_*337 5 git teamcity continuous-integration pull-request bitbucket-server
我正在尝试设计遵循以下原则的新工作流程:
我们正在使用git,Stash和TeamCity.这就是我想出来的,但它们都不是完美的.我正在寻找对我的建议或新想法的调整.
工作流程1
当拉取请求被另一个开发人员批准时,它会被Stash自动合并到主线中(主线由TeamCity中的普通CI覆盖)
问题:如果存在合并冲突,Stash将不会执行合并,但直到合并到主线之后才会测试合并状态.我们不知道主线是否会发生故障.
工作流程2
当拉取请求被另一个开发人员批准时,它会被Stash自动合并到主线中(主线由TeamCity中的普通CI覆盖)
问题:测试合并状态之间的时间(20分钟 - 1天?),并且集成发生允许集成分支中的更改,这可能意味着合并状态不再起作用.整合分支破裂的机会.
工作流程3
当另一个开发人员批准并合并拉取请求时,feature/VHPC-1/review将在合并状态下自动构建和测试,并在成功时自动充当主线
问题:分支数量的两倍意味着一些额外的复杂性和工作.
工作流程4
如果自动验证通过,TeamCity将批准拉取请求.然后,人可以审查,批准并将其合并到主线中.
问题:TeamCity监视refs/pull-requests/merge,当集成分支发生变化时,这会改变,这意味着当集成分支获得一个新的更改时,将在所有打开的pull请求上触发构建.
这里是前 Stash 开发人员。只是一些一般性的想法。
Stash 团队(以及我合作过和观察过的大多数团队)进行“乐观”分支构建。也就是说,他们构建源分支的假设/希望是,如果它干净地合并,它可能不会破坏主线构建。根据我的经验,情况几乎总是如此。
一些选项:
我同意,一般来说,从 Stash 隐藏的“合并”引用进行构建,取决于拉取请求打开的时间,可能会导致太多构建(正如您所指出的)。
不确定这是否有帮助?