持续集成软件,支持Git和gated check-in?

时间:2012-08-28 08:25:28

标签: tfs continuous-integration jenkins teamcity bamboo

我一直在关注TFS,TeamCity,Jenkins和Bamboo,说实话,他们都没有说服力。我想要

  • 报告良好
  • Good Git支持
  • 门禁/延迟登记/提交
  • 与Visual Studio和/或Atlassian产品集成
  • 解决方案不应要求常规开发人员使用命令行或终端(Git Extensions FTW)
一般情况下,TFS配置和使用起来很混乱,它显然不支持Git,但它有门禁签到(虽然它似乎每次都不必要地检查整个项目,所以它很慢?) 。报告部门也非常缺乏。

对于Git来说,TeamCity的门禁支持非常糟糕,否则这是我最喜欢的。支持很多开箱即用的东西。

詹金斯的报道很糟糕(历史趋势等等),它似乎比其他人有更多的错误,插件质量可能会很吓人。另一方面,它是免费和多功能的。如何支持Git和gated check-ins?

Bamboo显然有很好的Atlassian集成,但不支持gated check-ins。 :(

有什么建议吗?

7 个答案:

答案 0 :(得分:5)

@ arex1337这里提供的所有答案都有其优点。经验告诉我们,没有任何项目/组织能够满足所有需求的单一供应商。您可能最终得到的是一个基本CI工具,其中包含来自其他供应商的插件/添加件,这些插件/添加件都是他们自己的USP。


举个例子:

Jenkins 作为基础工具。 @Aura和@sti已经提到了所有好事;虽然我们可以同意插件开发有点不受控制,但仍然有很多提供优质的插件开发。最重要的是社区是活跃的,非常敏捷(他们通常每周发布1次),你可能遇到的任何问题都很容易解决。另外一个好处是易于插件开发,所以如果推动推动,你可以编写自己的。

@Mark O' Connor正在接受 SONAR 建议。在报告和获得很酷的报告方面,您可以获得最好的一个。 @Thomas已经清除了有关门控提交的空气


赞成詹金斯:

良好的报告 - 您使用SONAR + Jenkins

获得了它

良好的Git支持 - Jenkins给出了

门禁/延迟办理登机手续/提交 - Jenkins Gerrit plugin

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

CloverCrowdConfluence,JIRA:Plugin1 Plugin2 Plugin3

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


现在您可以在上面的示例中将 Jenkins 替换为 Bamboo ,并且可能接近您想要的内容。但截至目前,似乎最好的选择是詹金斯。

TFS TeamCity :Jenkins和Bamboo联盟中还没有。

答案 1 :(得分:3)

  1. Verigreen是用于验证git提交的服务器端解决方案,它与TFS的Gated Check in类似。
    它只会将那些提交推送到已成功构建的受保护分支。
  2. Travis是用于构建和测试您的应用的CI服务。

答案 2 :(得分:2)

你看过Gerrit吗?

它基于Git,有门控提交(至少如果我正确理解你的术语门控提交是什么意思)并且有非常好的评论功能。

您可以将Gerrit与this plugin集成到Jenkins中,但我不确定Atlassian和Visual Studio。

答案 3 :(得分:2)

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

因此,只要我觉得你处于决策中。所以,请允许我为您提供一些建议。

通过你的问题,你想要的第一件事是良好的报告。

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

接下来你需要良好的git支持:Jenkins提供了很棒的Git支持。 有几个可用于Git的插件(例如Github插件)。因为你担心它有更多的错误,插件质量可能会吓人,但是没有软件没有bug!最近Jenkins发布了一个稳定的版本1.478,它没有很多以前的bug(我正在使用 1.401 我在过去10个月内甚至没有遇到任何一个错误)。我相信Jenkins正在不断改进,并且不断开发新的插件,扩展其使用范围。如果你的项目需要在将来扩展,那么Jenkins可以很好地使用

门禁/延迟办理登机手续:据我所知,詹金斯可以用于门控/延迟签到/提交(不确定,但如果我遇到任何此类问题,我会告诉您信息)。 |对它进行了一些研究,我意识到它是SVN的一个属性,它与Jenkins无关,所以如果你的SVN支持门控/延迟签到,你不必担心它,因为Jenkins只是访问它的媒介。|

Jenkins不要求您使用命令行脚本,除非您的项目需要它。非开发人员也可以“管理詹金斯”!它易于配置和使用,因为它具有出色的用户界面,并且在线提供了大量帮助。

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

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

答案 4 :(得分:1)

Jenkins Git插件可以支持gated提交。检查Git插件wiki page

上的说明

您正在寻找什么样的报告?詹金斯有各种RSS提要和历史趋势。有一些插件可以添加一些报告。此外,还有Plot plugin可以轻松(ish)制作自己的图表。或者,Warnings plugin的报告可能就是您要找的。

答案 5 :(得分:0)

我正在使用TFS 2012 Express。我从来没有使用过以前的TFS版本,因为他们看起来像是设置和管理混乱,但他们使用这个最新版本改进了很多。请参阅http://channel9.msdn.com/Events/TechEd/Europe/2012/DEV346

上的演示文稿

答案 6 :(得分:-1)

最后一次使用这个,但托管的TFS服务在设置方面很有用,它现在支持GIT。 如果您使用内部部署TFS解决方案并将其连接到SQL Reporting Services,您将获得比您想象的更多的报告。如果您全力以赴并添加SharePoint,您也可以获得基于项目的wiki站点。

如果你全力投入TFS,我认为你很难找到任何可以比较的东西,因为每个部分都是主要产品。在Excel中创建错误并将它们推送到TFS主机是最重要的事情之一。没有更挑剔的基于Web的UI。如果这是你的包,你也可以计划MS Project。总而言之,您拥有用于详细任务创建和管理的Office(项目,Excel),用于Wiki的SharePoint,用于报告的SQL报告(代码流失,构建计数失败等)和TFS(使用GIT),用于源控制和粘合其他的部分。

当然,这确实意味着你在MS生态系统中100%,而这本身对许多人来说可能是一个非常可怕的因素。如果你只是用拳打滚,虽然我发现它很棒。许多消极性都是基于旧系统和一般的MS感知。

相关问题