支持Git和门禁式检入的持续集成软件?

13

我一直在研究TFS、TeamCity、Jenkins和Bamboo,但是说实话,它们都没有令人信服。我想要:

  • 良好的报告功能
  • 良好的Git支持
  • 带有门禁/延迟提交功能
  • 与Visual Studio和/或Atlassian产品集成
  • 解决方案不应要求开发人员经常使用命令行或终端(Git扩展最好)

TFS在一般情况下配置和使用都很混乱,显然不支持Git,但它具有门禁提交(尽管每次似乎无需检查整个项目,导致速度缓慢?)。此外,在报告方面也存在严重缺失。

当涉及到Git时,TeamCity的门禁提交支持非常差,但除此之外,它是我最喜欢的工具。支持许多开箱即用的功能。

Jenkins中的报告功能不太好(历史趋势等),它似乎比其他工具更容易出现错误,而且插件质量可能会有所担忧。另一方面,它是免费且多功能的。那么关于Git和门禁提交的支持如何呢?

Bamboo显然具有出色的Atlassian集成,但不支持门禁提交功能。:(

有什么建议吗?

7个回答

5

@arex1337 所有提供的答案都有其优点。经验告诉我们,没有一个项目/组织会对一个供应商满意地满足其所有需求。你可能最终会得到一个基础CI工具,并混合使用其他供应商的插件/附加功能,他们拥有自己的USPs。


例如:

Jenkins 作为基本工具。 @Aura 和 @sti 已经提到了所有好处;虽然我们可以同意插件开发有点不受控制,但仍然有很多提供优秀质量的插件。主要的是社区活跃,非常敏捷(通常每周发布1个版本),任何问题都很容易解决。额外的好处是易于插件开发,所以如果必要的话,您可以编写自己的插件。

@Mark O'Connor 的 SONAR 建议是正确的。在报告方面是最好的之一,而且可以获得很酷的报告。@Thomas 已经澄清了关于门禁提交的事情


支持Jenkins:

良好的报告 - 使用SONAR+Jenkins

良好的Git支持 - Jenkins提供了这个功能

门禁/延迟签入/提交 - Jenkins Gerrit插件

与Visual Studio和/或Atlassian产品的集成 - Jenkins维基本身就在Atlassian上运行。这里是一些已经存在的集成列表

CloverCrowdConfluence,JIRA:插件1 插件2 插件3

不应要求常规开发人员使用CLI - Jenkins没有要求


现在您可以将Jenkins替换为Bamboo,并可能接近您想要的内容。但截至目前,似乎您最好的选择是Jenkins。

TFSTeamCity:它们还没有达到Jenkins和Bamboo的水平。


3
  1. Verigreen 是一种服务器端的解决方案,用于验证Git提交,有点类似于TFS的Gated Check in功能。
    它只会将构建成功的提交推送到受保护的分支。
  2. Travis 是一个CI服务,用于构建和测试您的应用程序。

1
小注释,Verigreen不是一个git插件,而是一个门禁式的签入系统,可以始终保持您的受保护分支处于绿色状态。Git用户正在使用它来触发Jenkins中的构建。 - soninob
@soninob - 是的,它不是一个git插件。我编辑了我的回答。它也不用于触发jenkin的构建,而是一种不允许在受保护分支中提交失败的东西。它还会通知提交者有关状态的信息。 - Jay Shah
1
Verigreen 触发了 Jenkins - 这是它的工作方式。您将 Jenkins 作业名称提供给 Verigreen 属性文件。系统检测到每次提交时,都会触发该作业并监视构建结果,基于构建结果,Verigreen 决定是否将提交传递到受保护的分支。当然,VG 的强大之处不在于此,而在于允许处理多个提交并了解有问题的提交并将其删除的排列组合过程。干杯 :-) - soninob
1
如果您想了解更多关于Verigreen的信息,可以查看这篇文章:https://dev59.com/omcs5IYBdhLWcg3w64Ga#33008509?s=3|0.2554#33008509 - soninob

2

好问题!非常广泛。无法比较所有的CI产品。

就我所知,您现在处于决策阶段。让我给您提供一些建议。

根据您的问题,首先您需要的是良好的报告。

Jenkins可用于非常交互式的报告。有几个插件允许Jenkins自定义报告的格式。您可以定义HTML模板,然后获得一个定制的、适当格式化的报告,涵盖了您对报告需求的几乎所有方面。这也可以通过电子邮件发送给相关人员/提交者和罪犯!

接下来,您需要良好的Git支持:Jenkins提供了出色的Git支持。有几个Git插件可用(例如Github插件)。正如您担心它有更多的漏洞和插件质量可能令人担忧,但是没有软件是没有漏洞的!最近Jenkins发布了一个稳定版本1.478,摆脱了许多以前的漏洞(我正在使用1.401,过去10个月中我甚至没有遇到过一个漏洞)。我相信Jenkins在不断改进,新插件的不断开发扩展了它的使用和范围。如果您的项目需要在未来扩展,那么Jenkins可以非常有用

门控/延迟签入:据我所知,Jenkins可用于门控/延迟签入/提交(不确定,但如果我遇到任何这样的信息,我会及时告诉您)。|对此进行了一些研究,我意识到这是SVN的一个属性,与Jenkins无关,因此,如果您的SVN支持门控/延迟签入,则不必担心,因为Jenkins只是访问它的媒介。|

Jenkins不需要您使用命令行脚本,除非您的项目需要。非开发人员也可以“管理Jenkins”!它易于配置和使用,因为它具有出色的UI,并且有很多在线帮助可用。

Jenkins是用Java开发的,因此插件开发也很容易。根据您的需要,您可以编写自己的插件并扩展其功能。

Jenkins也可以轻松地与Atlassian产品集成(有几个插件可用于将不同的Atlassian产品集成到Jenkins中。例如JIRA插件)(还不知道Visual Studio)。


在我的经验中,Jenkins 很棒。 - Pulak Agrawal

2

你看过Gerrit了吗?它基于Git,有门禁提交(至少如果我正确理解你所说的门禁提交术语),并且具有非常好的审查功能。

你可以使用这个插件将Gerrit集成到Jenkins中,但我不确定Atlassian和Visual Studio是否支持。


似乎并不适合。通过门控提交,我指的是那些不能构建和通过单元测试(以及可能的其他规则)的提交将被拒绝。 - user479911
没错,使用Gerrit和Jenkins的Gerrit-Trigger插件是可以实现的。 - dunni
1
还可以考虑使用Sonar进行构建报告。对于C#分析,不要使用Jenkins Sonar插件(针对Maven构建进行了优化),而是使用由Jenkins作业调用的Java运行器。 - Mark O'Connor

1

Jenkins Git插件可以支持门控提交。请查看Git插件的描述wiki页面

您需要什么样的报告?Jenkins有各种RSS订阅和历史趋势。还有一些插件可以添加一些报告。此外,Plot插件使制作自己的图表变得更加容易。或者您可能正在寻找Warnings插件的报告。


0

-1

虽然晚了一些,但托管的TFS服务非常易于设置和使用,现在还支持GIT。 如果您选择本地TFS解决方案并将其与SQL Reporting Services连接起来,则会获得比您想象的更多报告。如果您全面添加SharePoint,则还可以获得基于项目的维基站点。

如果您选择全面采用TFS,我认为您很难找到任何可以真正相提并论的东西,因为每个部分都是一个重要的产品。在Excel中创建bug并将其推送到TFS主机是最棒的事情之一。不再有挑剔的基于Web的UI。如果那是你的最爱,你也可以用MS Project进行计划。总的来说,您将拥有Office(Project、Excel)以进行详细的任务创建和管理,SharePoint以进行Wiki,SQL报告以获取您的报告(代码变更、失败的构建计数等),以及TFS(带有GIT)作为源代码控制和其他部分的粘合剂。

当然,这意味着您完全处于微软生态系统中,这本身对许多人来说可能是一个非常可怕的因素。如果您只是轻松应对,我发现它非常好。许多负面影响是基于旧系统和普遍的微软印象。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接