【发布时间】:2010-12-06 10:10:15
【问题描述】:
所以,我和一个朋友一直在讨论持续集成和 bat/powershell 脚本与 CI 服务器(如 CruiseControl.Net 或 Hudson)的对比。
以下 powershell 伪脚本可用于从 SVN 更新、使用 msbuild 构建、部署/复制、更新应用程序中的构建/修订号,以及在构建失败时发送电子邮件。下一步是在不成功时添加对 MSTest 的调用和电子邮件结果。
- svn 更新
- msbuild > build_deploy_development_out_msbuild
- ([xml](svn info --xml)).info.entry.commit.revision + [char]13 + [char]10 + (echo %date% %time%) > build_revision_number.html
- $linenumber = 选择字符串 build_deploy_development_out_msbuild -pattern "构建失败" |选择对象行号
- $smtp = 新对象 System.Net.Mail.SMTPClient -ArgumentList localhost | if($linenumber > 0) $smtp.Send("From:Email","To:Email", "build failed", "build failed...some one must die!")
这让我想到了 CI 服务器的价值问题,当您可以编写自己的 shell 脚本来完成相同的目标时,使用项目的特定工具(构建工具、源代码控制、单元测试)(即msbuild、nant、svn、git、nunit、mstest 等)
我还没有经历过维护费用。我想在滚动您自己的 shell 脚本与 CruiseControl.Net 或 Hudson 时获得其他人的意见。请注意,我没有使用 CI 服务器的经验,所以这个问题,所以请不要认为这是对 CI 服务器的批评;我根本不知道最佳答案,我想我会问社区。p>
祝你好运! 皮特·戈登
【问题讨论】:
-
这应该是社区wiki,因为没有明确的答案
-
为什么还要列出 CC.NET 或 Hudson?这似乎是一个 Powershell VS CI 问题。为什么是语义?
标签: unit-testing powershell continuous-integration cruisecontrol.net hudson