TFS 2008/2010 与 Jenkins 的持续集成对比

发布于 12-08 12:54 字数 404 浏览 1 评论 0原文

有人有使用 TFS 2008/2010 和 Jenkins 进行持续集成 (CI) 的具体经验吗?我们正在尝试决定使用哪个 CI 服务器。我们的团队专门使用 Microsoft .NET/Visual Studio 2010/C# 进行工作。我们有以下要求:

  1. 在每次签入时自动构建我们的 Web 项目。
  2. 对每个构建运行单元测试。
  3. 自动将绿色构建部署到开发和/或测试环境。
  4. 提供漂亮的报告。
  5. 通过电子邮件提供构建/部署通知。

我意识到安装工具并不一定能为我们提供开箱即用的功能,我们必须与 MSBuild 等其他工具集成才能实现此目的。

我正在寻找 Jenkins 具有而 TFS 2008/2010 没有的特定功能,反之亦然。也更容易维护、使用等。

Does anyone have specific experiences with using TFS 2008/2010 AND Jenkins for Continuous Integration (CI)? We are trying to decide which CI server to use. Our team works exclusively in Microsoft .NET/Visual Studio 2010/C#. We have the following requirements:

  1. Automatically build our web project on every checkin.
  2. Run unit tests with each build.
  3. Automatically deploy green builds to development and/or test environments.
  4. Provide pretty reports.
  5. Provide build/deployment notifications via email.

I realize that installing a tool won't necessarily give us this functionality out-of-the-box and that we will have to integrate with other tools like MSBuild to achieve this.

I'm looking for specific features that Jenkins has that TFS 2008/2010 does not or vice versa. Also which is easier to maintain, use, etc.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

魔法唧唧2024-12-15 12:54:58

我强烈建议使用 Jenkins - 除了可能的#3 之外,它可以开箱即用地满足您的所有要求,但如果您可以编写部署脚本,那么它也可以做到这一点。

以下是一些可帮助您启动并运行构建的链接:

有关在 Jenkins 中进行 .NET 构建的博客

Jenkins Windows 安装程序

将 Jenkins 主服务器和从服务器安装为 Windows 服务

免责声明:我没有使用 TFS 的经验,但我认为开放解决方案几乎总是比专有产品更灵活和可扩展(而且更便宜!)。

I would highly recommend using Jenkins - it will do all of your requirements out of the box apart from possibly #3, but if you can script your deployments then it can do that as well.

Here are some links to help you get your builds up and running:

Blog about doing .NET builds in Jenkins

Jenkins Windows installers

Installing the Jenkins master and slaves as Windows services

Disclaimer: I have no experience with TFS, but I think open solutions are nearly always more flexible and extensible (and cheaper !) than proprietary products.

心作怪2024-12-15 12:54:58

虽然玩这个游戏比较晚,但我已经使用了 TFS 2010 和 Jenkins 进行 CI。 TFS 2010 中包含最少的 CI 工具集。但是,当您想要创建 CI 管道时,情况就完全不同了,而 Jenkins 可以轻松创建管道。

如果您只考虑一个构建的 CI,则任一版本都应该有效。然而,当涉及到整个管道时,Jenkins 是不错的选择。使用 TFS 可以完成,但 Jenkins 是更好的选择。

以下是快速要点:

TFS:

  • 使用构建定义,您可以编译、执行测试、返回变更集/工作项、在构建损坏时发送电子邮件

  • 与 Visual Studio 自然集成

  • 极难创建 CI 管道。需要自定义处理程序和大量工作流程工作。不像创建构建定义那么直观。

  • 由于第 3 个项目符号,维护/自定义/扩展 CI 管道并不容易

Jenkins:

  • 需要创建一个用于 CI 的 msbuild 配置文件,与使用 TFS 创建 CI 管道相比,这并不算太痛苦。然而,TFS 提供了更好/更简单的工具来创建构建定义。不过,为项目创建 msbuild 配置文件也不错。

  • 创建 CI 管道非常简单。只需使用上游/下游 jenkins 作业触发器链接它们并传递先前作业中的工件即可。

  • 由于 Jenkins 非常灵活,所以很容易创建一个 jenkins 插件来满足自己的需求并提供给开源社区:)

总之,如果您需要完整的自动化构建、测试和部署系统,请使用 Jenkins。如果您只需要构建和测试,TFS 可能比 Jenkins 更有优势。

Late to this game, but I have used both TFS 2010 and Jenkins for CI. TFS 2010 has minimum set of CI tools in it. However, when you want to create a CI pipeline, it's a completely different story while Jenkins can easily create the pipeline.

If you are looking at only CI for one build either one should work. However, when it comes to the entire pipeline, Jenkins is way to go. With TFS it can be done, but Jenkins is better choice.

Here's quick bullet points:

TFS:

  • With a build definition you can compile, execute tests, return changeset/workitems, send an email when a build is broken

  • natural integration with visual studio

  • extremely hard to create CI pipeline. Requires custom handler and extensive workflow work. Not as intuitive as creating a build definition.

  • Because of the 3rd bullet, it's not easy to maintain/customize/scale CI pipeline

Jenkins:

  • Need to create a msbuild config file for CI, which is not much pain comparing to creating CI pipeline using TFS. However, TFS gives better/easier tool to create a build definition. however, it is not bad creating config file for msbuild for a project.

  • Creating a CI pipeline is very easy. Just chain them using upstream/downstream jenkins job trigger and passing an artifact from previous job.

  • Since Jenkins is very flexible, it is easy to create a jenkins plugin to meet your own needs and provide it to opensource community :)

In summary, if you need complete automated build, test, and deployment system go with Jenkins. If you just need only build and test, TFS might give you an edge over Jenkins.

半寸时光2024-12-15 12:54:58

如果您使用的是 Team 2010-2012,则没有任何理由引入 Jenkins。团队拥有您列出的所有功能,并且构建过程非常灵活。

请注意,如果您陷入 Team 2008 或更早版本,您应该认真看看 Jenkins——与 2010 或更高版本相比,2008 及更早版本相当原始且不灵活。

If you're using Team 2010-2012, there is no reason whatsoever to bring in Jenkins. Team has all the features you listed, and the build process is ridiculously flexible.

Note that if you are stuck on Team 2008 or earlier, you should seriously look at Jenkins -- 2008 and earlier are quite primitive and inflexible compared to 2010 or later.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文