13

我一直在研究 TFS、TeamCity、Jenkins 和 Bamboo,老实说,它们都没有说服力。我想

  • 好报告
  • 良好的 Git 支持
  • 门控/延迟签入/提交
  • 与 Visual Studio 和/或 Atlassian 产品集成
  • 该解决方案不应要求常规开发人员使用命令行或终端(Git Extensions FTW)

TFS 通常配置和使用都很混乱,它显然不支持 Git,但它有门控签入(尽管它似乎每次都不必要地签出整个项目,所以它很慢?)。报告部门也确实缺乏。

在 Git 方面,TeamCity 的门控签入支持非常糟糕,否则它是我的最爱。支持很多开箱即用的东西。

Jenkins 的报告很糟糕(历史趋势等),它似乎比其他的有更多的错误,并且插件质量可能令人恐惧。另一方面,它是免费且用途广泛的。对 Git 和门控签到的支持如何?

Bamboo 显然具有出色的 Atlassian 集成,但不支持门控签到。:(

有什么建议吗?

4

7 回答 7

5

@arex1337 这里提供的所有答案都有其优点。经验告诉我们,没有一个项目/组织会对单一供应商满足他们的所有需求感到满意。你可能最终拥有的是一个基本的 CI 工具,其中混合了来自拥有 USP 的其他供应商的插件/添加。


举个例子 :

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

@Mark O'Connor 非常赞同SONAR的建议。您可以在报告方面获得最好的报告并获得出色的报告之一。@Thomas 已经澄清了有关门控提交的问题


支持詹金斯:

良好的报告- 使用 SONAR+Jenkins 即可

良好的 Git 支持- Jenkins 提供了

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

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

三叶草人群汇合,JIRA:插件 1插件2 插件3

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


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

TFSTeamCity:Jenkins 和 Bamboo 的联盟中还没有。

于 2012-09-05T06:43:46.167 回答
3
  1. Verigreen是一种用于验证 git 提交的服务器端解决方案,它在某种程度上类似于 TFS 的 Gated Check in。
    它只会将那些提交推送到成功构建的受保护分支。
  2. Travis是一种 CI 服务,用于构建和测试您的应用程序。
于 2017-03-29T16:26:54.113 回答
2

你看过格里特吗?

它基于 Git,具有门控提交(至少如果我正确理解了门控提交一词的含义)并且具有非常好的审查功能。

您可以使用此插件将 Gerrit 集成到 Jenkins 中,但我不确定 Atlassian 和 Visual Studio。

于 2012-08-28T08:32:27.757 回答
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)。

于 2012-09-02T06:58:43.557 回答
1

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

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

于 2012-08-28T21:47:33.810 回答
0

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

于 2012-09-06T11:05:17.073 回答
-1

晚了这一点,但托管的 TFS 服务在设置方面非常好用,它现在支持 GIT。如果您使用本地 TFS 解决方案并将其连接到 SQL Reporting Services,您将获得比您想象的更多的报告。如果您全力以赴并添加 SharePoint,您也会获得基于项目的 wiki 站点。

如果你全神贯注于 TFS,我认为你很难找到任何可以真正比较的东西,因为每个部分都是主要产品。在 Excel 中创建错误并将其推送到 TFS 主机是最棒的事情之一。不再有挑剔的基于 Web 的 UI。如果那是您的包,您也可以使用 MS Project 进行计划。总而言之,您将拥有用于详细任务创建和管理的 Office(项目、Excel)、用于 Wiki 的 SharePoint、用于报告的 SQL 报告(代码搅动、失败的构建计数等)以及用于源代码控制和粘合的 TFS(带有 GIT)其他部分。

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

于 2013-05-28T18:43:44.373 回答