因此,我和一个 friend 一直在讨论持续集成和bat/powershell脚本,以及诸如CruiseControl.Net或Hudson之类的CI服务器。

以下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 if($ linenumber> 0)$ smtp.Send(“发件人:电子邮件”,“收件人:电子邮件”,“构建失败”,“构建失败...某人必死!”)

  • 当您可以使用项目的特定工具(构建工具,源代码控制,单元测试)(例如,msbuild,nant)编写自己的shell脚本以实现相同目标时,这使我想到了CI服务器的值(value)问题。 ,svn,git,nunit,mstest等)

    到目前为止,我还没有经历过维护费用。我想让其他人对自己的shell脚本而不是CruiseControl.Net或Hudson提出意见。请注意,我没有使用CI服务器的经验,因此是个问题,所以请不要将此视为对CI服务器的批评。我根本不知道最佳答案,以为我会问社区。

    最好的祝愿!
    皮特·戈登

    最佳答案

    CI服务器具有以下优点:

  • Web访问,通常具有与现有身份验证机制集成的能力(请参阅Hudson的ActiveDirectory/LDAP支持)
  • 大量的对单元测试,zip归档文件创建g等的现有支持。
  • Hudson(及其他)支持从属构建节点,以执行分布式CI任务。
  • 无需自己维护。

  • 其中一些可能不是您现在需要的,现在是,但是您确定它们不是将来可能需要的东西吗?

    09-04 12:08
    查看更多