一尘不染

门控登机/ Git的预测试提交?

jenkins

我正在寻找从TFS(Team Foundation
Server)迁移到Git的方法,但是找不到与TFS对门禁签入(也称为预测试或延迟提交)的支持相匹配的任何内容。

Atlassian
Bamboo不支持门禁值机。TeamCity确实支持它(使用其术语的“延迟提交”),但不支持Git。单独使用Jenkins或Jenkins +
Gerrit都具有很大的缺点,并且与TFS中的门控登机功能并不接近。(詹金斯(Jenkins)的创建者本人在此视频中解释了缺点:http
:
//www.youtube.com/watch?v=LvCVw5gnAo0)

Git非常受欢迎(有充分的理由),那么人们如何解决这个问题?目前最好的解决方案是什么?


阅读 232

收藏
2020-07-25

共1个答案

一尘不染

我们才刚刚开始使用git,并且已经使用工作流实现了预先测试的提交(我今天才完成测试)。

基本上每个开发人员都有一个个人存储库,他们具有读/写访问权限。在我们的案例中,构建服务器TeamCity使用这些个人存储库进行构建,如果成功,则将更改推送到“绿色”存储库。开发人员没有对“绿色”的写入权限,只有TeamCity构建代理可以对此进行写入,但是开发人员从“绿色”中提取常见更新。

因此,开发人员从“绿色”开始,走向个人,TeamCity从个人开始,走向绿色。

这篇博客文章显示了我们正在使用的基本模型,以及针对个人存储库的GitHub分支(使用分支意味着存储库的数量不会一发不可收拾,最终会花费更多,并且意味着开发人员可以管理个人构建,因为他们可以分叉,然后创建团队城市构建工作,以将其代码推送到“绿色”):

在此处输入图片说明

由于每个开发人员都必须拥有自己的构建配置,因此在TeamCity中进行设置需要做更多的工作。实际上,它实际上必须是2种配置,因为TeamCity似乎执行了所有构建步骤(包括最后的“推向绿色”步骤),即使先前的构建步骤失败了(如测试:)),这意味着我们必须有个人的为开发人员构建,然后是另一个依赖于该构建的构建配置,只要构建成功,该配置便会进行推送。

2020-07-25