2

目前我的任务是进行日常构建。我们有一个带有 SQL Server 2005 后端的 ASP.NET 2005 网站。我们当前的源代码控制是 Visual Source Safe 2005。

在这一点上,我使用日常构建的蛮力方法。

  1. 获取最新版本的源代码
  2. 获取最新版本的数据库发布脚本
  3. 将旧网站文件备份到目录
  4. 将新代码发布到我的本地机器
  5. 在我的服务器上运行以保持测试/阶段站点正常工作
  6. 将新创建的文件推送到网站
  7. 在测试数据库上运行 SQL 脚本(假设更新,否则我不打扰)
  8. 测试服务器上的测试网站。

看到自动化构建的想法让我很感兴趣,因为这意味着我每天早上做的更少。你会建议我如何进行?在我把它介绍给我的老板之前,我想有一个完整的想法。

4

7 回答 7

5

抛弃 VSS,转移到 Subversion,然后查看 CruiseControl.NET。 或者,如果您拥有 MSDN 开发人员许可证,则可以运行 TFS 工作组版并在任何旧 XP 机器上设置构建服务器。这是我们在我们的商店所做的。


Assaf 指出,您可以直接将 CC.NET 与 VSS 一起使用。好的。

于 2008-11-14T15:48:50.033 回答
4

TeamCity对我来说效果很好。它有一个非常简单的设置。将它与用于您的操作的 MsBuild 脚本结合起来,您就可以自动完成操作了。

于 2008-11-14T15:51:32.727 回答
4

对于构建管理,我全心全意地推荐 TeamCity。它不需要 IIS6(就像 CC.net 一样),因为它运行在自己的 Tomcat 副本上,并且设置都是通过各种形式完成的。这对我来说很重要,因为构建服务器只是一个 XPPro 盒子。它与 SVN 很好地集成,并且没有像 CruiseControl.Net 那样疯狂的 XML 文件操作。对我来说是大胜利。

对于构建运行器,我们使用 NAnt 向不同的人发送电子邮件,将打包的构建复制到他们应该去的地方,运行 NUnit 和 NCover,并将软件部署到我们的网络农场。

对于自动化测试,我们使用 Watin。

http://www.nunit.org/index.php http://www.jetbrains.com/teamcity http://ncover.sourceforge.net/ http://subversion.tigris.org/ http://nant. sourceforge.net/ http://watin.sourceforge.net/

于 2008-11-14T16:38:21.587 回答
3

试试 CruiseControl.Net。它是免费的,无论您希望它执行什么自定义的日常/连续例程,您都可以随时添加脚本。

请记住,这不仅仅是每天(每晚)构建,还包括让您及时发现构建错误(因为它在每次源提交/签入后不断构建)。您不一定要在每个可能的平台上测试每个代码机会并构建配置,但 CC 可以为您完全做到这一点(在后台)。


http://confluence.public.thoughtworks.org/display/CCNET/Visual+Source+Safe+Source+Control+Block

于 2008-11-14T15:49:31.093 回答
2

您所做的所有事情都可以通过一组批处理文件来执行,具体取决于您的测试环境的自动化程度。主批处理文件可以在午夜或其他任何时间作为“计划任务”启动。这就是我们在这里和我工作过的其他地方“便宜”的方式。如果您需要特定批次的帮助,我可以提供样品。

于 2008-11-14T15:48:18.350 回答
1

我第二(或第三)推荐 Subversion/CruiseControl.net。此外,如果合适,请查看 SVN 的托管服务,例如 CVSDude。在此过程中,您可能也会精通 MSBuild。一旦你得到它设置它是伟大的。

成本不一定来自工具甚至硬件的许可,而是来自您构建和维护系统的时间 - 并且取决于您在做什么,这可能会变得很重要。

从基础开始,随着时间的推移逐步改进。像其他任何事情一样,如果您尝试使用大量自动化和功能走出大门,您可能会发现自己陷入了数周的全职困境。

于 2008-11-14T15:59:22.210 回答
1

无论您使用什么工具,都将它们存放在虚拟机(即 vmware)中。

当设备不可避免地出现故障时,您可以将映像复制到任何机器上而不会错过任何一个节拍,因为您的构建服务器决定休息一天,当然前提是您备份了。

于 2009-01-23T18:18:34.767 回答