简化构建服务器设置的软件建议

发布于 2024-09-17 16:46:47 字数 2707 浏览 7 评论 0原文

我目前正在设置一个新的构建服务器,并且我对社区可能对 Hudson 或 CruiseControl.NET 等软件提出的任何建议感兴趣,这些建议可以简化构建过程并为构建过程增加附加值。

以前,我使用自定义批处理文件设置了一个构建服务器,该文件将运行 msbuild 和其他此类工具,并且这些工具由 subversion 挂钩触发,以允许每个分支完成连续构建。我们的想法是,最终我们还将执行自动化测试和/或静态分析,尽管我们从未真正做到这一点。该服务器还充当我们的源代码存储库、用于 Web 项目构建的测试机以及用于团队开发人员的自定义仪表板和门户的 Web 服务器。

此时,我的想法是分离旧构建服务器的一些职责,至少有一个仅负责创建构建的构建服务器,一个负责充当开发人员的 Intranet 风格仪表板站点的 Web 服务器,也许作为 Subversion 存储库的附加 Web 服务器。如果事实证明将 Subversion 代码保存在与 SvnServe 相同的服务器上会更好或更容易,那么我可能会选择将 Subversion 存储库放在 Web 服务器上,但仍将构建服务器分开。我对任何流行的构建服务器和 CI 解决方案都没有个人经验,我很好奇 CruiseControl.NET、Hudson 或其他解决方案如何适合这种类型的配置。例如,CC.NET 和 Hudson 似乎都有 Web 界面,但文档没有明确说明如何在不同的硬件/系统配置中发挥作用,因此我不确定是否需要 Web 部分在构建中服务器本身与否。

就技术而言,我正在处理基于 .NET/C# 的代码,它是 Web/WinForms/WPF 的混合体,我们使用一些单独的 Subversion 存储库来托管这些项目。此外,如果某些遗留应用程序能够支持 Visual FoxPro 和 Visual Source Safe,那就太好了。我还希望让更多的团队成员参与监控构建,并希望最终让开发人员为自己的项目创建构建设置并尽可能简单。另外我应该提到,我没有在 IIS 中设置基于 Java 的 Web 应用程序的经验,但我确实有相当多的设置和管理 ASP.NET 应用程序的经验,所以如果这可能会使基于 .NET 的产品更受欢迎,除非我可以否则确信。

更新(研究 Hudson 后):在为 Hudson 提供所有建议之后,我开始研究 在我的两台 Windows 2008 服务器上启动并运行。据我所知,Web 部分(主)将在我的 Web 服务器上运行,但似乎不支持 IIS,因此这将使事情变得非常复杂,因为我想将其与其他 Web 应用程序托管在同一台计算机上。在构建服务器上,我将安装 Hudson 的第二个副本,它将充当从属服务器,并且仅执行主服务器委托给它的构建。为了让它工作,我将 将 Hudson 安装为 Windows 服务 并且还需要安装一些 unix 兼容性实用程序。不幸的是,当我检查时, UnxUtils 下载链接 似乎已损坏,所以我不能真正继续前进,直到我解决这个问题。所有这些听起来确实与安装 CruseControl.NET 一样复杂,甚至更复杂。不幸的是,目前我不得不研究 CruiseControl.NET 和 TeamCity。

更新(关于 TeamCity):在仔细研究 TeamCity 后,我意识到至少服务器部分也是用 Java 编写的,并且部署方式与 Hudson 非常相似。幸运的是,Tomcat 似乎可以用来在 IIS 中托管 servlet,尽管我找不到一个好的直接指南来描述如何实际完成此操作。因此,当我遇到看起来可能是 主要内容时,我暂时跳过这一点障碍。

仅限 TeamCity 专业版 支持 TeamCity 默认 认证不支持 更改身份验证方案。

由于 Windows 身份验证可能是我们想要的方向,因此现在看起来可能会回到评估 CruiseControl.NET 或可能是 Hudson,如果我能接触到 UnxUtils 并了解有关如何托管仪表板的更多信息我现有的 IIS 配置中的 Hudson 的一部分。有什么指点吗?

更新(关于 Jenkins):我最终对 Hudson 进行了足够的实验,最终得到了一个合理的构建服务器设置,我对此感到满意,并且如果需要的话可以扩展以执行更多操作。当然,在 Oracle 接管 Hudson 后,我就彻底转换为 Jenkins,而我正在使用 Jenkins今天使用一些 powershell 来帮助将事情联系在一起。我现在对这种方法非常满意,除了基于 Java 之外,Jenkins 对其他开发环境(例如 .NET 和 MSBuild)也有相当多的支持。

I'm currently setting up a new build server and I'm interested in any suggestions the community may have about software such as Hudson or CruiseControl.NET that may simplify and add additional value to the build process.

Previously I had a build server set up using custom batch files which would run msbuild and other such tools and these were triggered by subversion hooks to allow for a continuous builds to be done per branch. The idea was that eventually we would also execute automated tests and/or static analysis although we never really got that far. This server also acted as our source code repository, a test machine for web project builds, and a web server for custom dashboard and portal for developers on the team.

At this point my thoughts are to separate some of the responsibilities of the old build server and at least a Build Server which is responsible only for creating builds, a web server which is responsible for acting as the intranet style dashboard site for developers, and perhaps an additional web server as the Subversion repository. If it turns out to be better or easier to keep the Subversion code on the same server as SvnServe then I'll probably opt to place the Subversion repository on the web server but still keep the build server separate. Having no personal experience with any of the popular build server and CI solutions out there I'm curious how CruiseControl.NET, Hudson or other solutions would fit into this type of configuration. It appears that both of CC.NET and Hudson have web interfaces for example but the documentation doesn't clearly layout how this plays out with different hardware/system configurations so I'm not sure if either requires the web portion to be on the build server itself or not.

As far as technologies I'm dealing with .NET/C# based code which is a mix of Web/WinForms/WPF and we use a few separate Subversion repositories to host these projects. Additionally it would be nice to support Visual FoxPro and Visual Source Safe for some legacy applications. I would also like to get more team members involved in monitoring builds and would like to eventual have developers create build setups for their own projects as well with as much simplicity as possible. Also I should mention that I have no experience setting up a Java based web application in IIS but I do have quite a bit of experience setting up and managing ASP.NET applications so if that may make .NET based products more favorable unless I can be convinced otherwise.

UPDATE (after researching Hudson): After all the recommendations for Hudson I started looking into what is involved to get it up and running on my two Windows 2008 servers. From what I can gather the web portion (master) would run on my webserver but it seems that IIS isn't supported so this would greatly complicate things since I want to host it on the same machine as my other web applications. On the build server, I would be installing a second copy of Hudson that would act as a slave and only perform builds that are delegated to it by the master. To get this to work I would be installing Hudson as a Windows Service and would also need to install some unix compatibility utilities. Unfortunately the UnxUtils download link appears to be broken when I checked as well so I can't really move forward until I get that resolved. All of this is really sounding just as complex if not more complex than installing CruseControl.NET. For now this unfortunately leaves me to looking into CruiseControl.NET and TeamCity.

UPDATE (about TeamCity): After looking into TeamCity a little closer I realized that at least the server portion is also written in Java and is deployed in a manner very similar to Hudson. Fortunately it appears that Tomcat can be used to host servlets inside IIS although I can't find a good straight forward guide to describe how to actually do accomplish this. So skipping that for now I looked further when I ran into what looks like what might be a major snag.

TeamCity Professional edition only
supports TeamCity Default
Authentication and does not support
changing the authentication scheme.

Since windows authentication is likely the direction we will want to go, it's now looking like it might be back to evaluating CruiseControl.NET or possibly Hudson if I can get my hands on the UnxUtils and also find out more about how I can host the dashboard portion of Hudson within my existing IIS configuration. Any pointers?

UPDATE (about Jenkins): I ended up experimenting enough with Hudson that I ended up with a reasonable build server setup that I'm happy with and that can be extended to do much more if I need. Of course I went the rout of converting to Jenkins once Oracle took over Hudson and Jenkins is what I'm using today with little bits of powershell to help tie things together. I'm very happy with this approach right now and besides being Java based, Jenkins has quite a bit of support for other development environments such as .NET and MSBuild.

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

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

发布评论

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

评论(5

初吻给了烟 2024-09-24 16:46:47

我会在这里投票给 TeamCity。它非常非常容易安装和运行,可以毫无问题地与所有 .NET 内容集成。构建本身由代理运行,代理可以根据需要位于构建服务器或另一台机器上——它们甚至可以位于不同国家/地区的不同网络上运行完全不同操作系统的机器上。

I'd vote for TeamCity here. Its is very, very easy to get stood up and running, integrates with all your .NET stuff without any trouble. The builds themselves are run by agents which can be on the build server or another machine depending on requirements--they could even be on a machine running an entirely different OS on a different network in a different country.

在风中等你 2024-09-24 16:46:47

我强烈建议使用 Hudson。它不仅允许您持续构建 .NET 应用程序,而且还可以运行代码分析和单元测试。它易于安装(只需将 WAR 文件部署到 Web 服务器,例如 Tomcat),并且有许多配置选项。还有大量插件可供您使用,其中许多是由其他 Hudson 用户编写的。最重要的是,它是免费的并且得到积极支持。

I highly recommend using Hudson. Not only will it allow you to build .NET applications on a continual basis, but you can also run code analysis and unit tests as well. It's easy to install (just deploy a WAR file to a web server such as Tomcat) and has many configuration options. There is also a large number of plugins available that you can use, many written by other Hudson users. Best of all, it is free and actively supported.

浪漫之都 2024-09-24 16:46:47

对于我们的决策过程,我们从以下概述开始。

http://confluence.public.thoughtworks.org/display/CC/ CI+Feature+Matrix

我们的主要目标是 java,即使在 6 个月没有人创建工作之后也易于配置/使用。我们放弃了旧版本的巡航控制系统,因为没有人真正知道如何使用它。如果您想要超越持续集成,一些商业产品是不错的选择。看看并自己决定。

小心,我不知道这个矩阵是如何最新的。所以有些项目现在可能已经实现了更多的功能。

Atlasian 的 Jira studio 是一个有趣的替代方案。如果您使用托管版本,则不会有太多支持问题,并且它附带了 subversion、bamboo 和好东西(jira+greenhopper、confluence、crucible、fisheye)。 http://www.atlassian.com/hosted/studio/

For our decision making process we started with following overview.

http://confluence.public.thoughtworks.org/display/CC/CI+Feature+Matrix

Our main objective was java, easy to configure/use even after nobody created a job for 6 months. We moved away from a old version of Cruise Control, since nobody really knew how to use it. Some of the commercial products are nice if you want to go beyond just continuous integration. Have a look and decide for yourself.

Be careful, I don't know how up to date this matrix is. So some of the projects might have implemented more functions right now.

An interesting alternative could be Jira studio by Atlasian. If you use the hosted version you don't have much on support issues and it comes with subversion, bamboo, and goodies (jira+greenhopper, confluence, crucible, fisheye). http://www.atlassian.com/hosted/studio/

死开点丶别碍眼 2024-09-24 16:46:47

我同意怀亚特·巴尼特的观点。 TeamCity 是最佳选择。它非常容易配置和使用。此外,TeamCity 还有免费专业版。之前我们在项目中使用了 CruiseControl.NET。这也是一个强大的工具,但它非常复杂且难以理解。

I agree with Wyatt Barnett. TeamCity is the best choice. It is very easy to configure and use. Moreover, TeamCity has a Free Professional Edition. Previously we used CruiseControl.NET on our project. This is also a powerful tool, but it is very complicated and hard to understand.

淡忘如思 2024-09-24 16:46:47

s.ermakovich 所说:TeamCity 和 Hudson 都将 Web UI 与构建代理分开。您不需要在构建代理上安装 IIS。您需要在任何构建节点上安装 JVM 和代理软件 - 非常简单。

What s.ermakovich said: Both TeamCity and Hudson separate the web UI from build agents. You shouldn't need to install IIS on a build agent. You'd need to install a JVM and the agent software on any build node - very straightforward.

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