定义生成过程以支持持续集成

您的团队可通过尽可能频繁地将各种功能集成到共享储存库,然后生成和测试结果,以在其代码库中最大程度地降低错误。 可以通过定义确保您及您的团队可以尽快确定功能团队中的签入已破坏生成,或导致测试失败的生成过程,实现称为持续集成的策略。

主题内容

  • 定义支持持续集成的生成过程

  • 改进生成进度的功能和性能的指导

  • 后续步骤

定义支持持续集成的生成过程

必需的权限

若要执行此过程,您的**“编辑生成定义”权限必须设置为“允许”**。 有关更多信息,请参见Team Foundation Server 权限

定义支持持续集成的生成过程

  1. 在**“团队资源管理器”**中:

    1. 如果尚未连接到您想要在其中工作的团队项目,请选择 连接到团队项目

    2. 选择 “主页”图标“主页”,然后选择 “生成”图标“生成”

    3. 在**“生成”页上,选择“新建生成定义”**。

    此时将出现新建生成定义窗口。

  2. 在**“触发器”选项卡上,选择“持续集成”**。

    提示

    如果开发人员为其要生成的签入而等待的时间过长,则您可能希望改为选择“滚动生成”。此触发器导致一起生成多个签入的生成系统。有关更多信息,请参见 Use the Rolling builds trigger

  3. 在**“工作区”选项卡上,在“工作文件夹”**表中,指定此生成定义应监视的版本控制文件夹。

    提示

    若要确保您的生成过程正常运行并可以改善性能,请包含生成过程所需的文件的所有文件夹(和仅有的这些文件夹)。有关如何指定这些文件夹的更多信息,请参见 使用生成工作区

  4. 在**“生成默认”选项以提高性能,选择“此生成不将输出文件复制到放置文件夹”**。

  5. 默认情况下,在**“生成选项卡”“生成过程模板”下,默认模板已选中。 在“要生成的项”**参数中,请指定要生成的解决方案项目或节点项目。

  6. 单击**“进程”**选项卡,设置生成过程参数,以确保签入符合团队的特定代码质量标准,而不必耽搁您的开发人员。

    有关更多信息,请参见本主题后面的 提高生成处理功能和性能的指导。

  7. 指定其他选项卡上生成过程选项。 有关更多信息,请参见创建生成定义

改进生成进度功能和性能的指导

若要确保生成过程满足您团队的需求并尽快执行,应在**“进程”**选项卡上指定值时考虑如下指南。

必需节点

  • 要生成的项要生成的配置:如果保留此参数为空,则将为每个解决方案和项目使用默认平台和配置。 若要优化性能,请遵循以下准则:

    • 如果一个平台-配置对的生成速度快于其他对的生成速度,请在此参数中指定它。

    • 尽可能少地指定平台-配置对。

基本节点

  • “清理工作区”:为了提高性能,将此值设置为**“无”(建议)或“输出”**。 但是,如果工作区未清理,那么您的团队很可能缺少某些类型的缺陷(例如在重构过程中引入的缺陷)。 有关更多信息,请参见定义基于默认模板的生成过程

  • 执行代码分析:对于更快速的性能,将此值设置为**“从不”**。

  • “源和符号服务器设置”“编制源索引”:为了获得更快速的性能,请将此值设置为 False

高级节点

  • 代理设置

    • 名称筛选器标记筛选器:使用生成代理名称或标记将此生成定义与专门用于运行此生成的生成代理绑定。 运行生成代理应具有足够强大的硬件,以使处理此生成的速度足以满足团队的性能期望。

    • “最长执行时间”:将此值合理地设置为尽可能小的数字。 例如,15 分钟对于团队可能合适,但 8 小时可能就太长了。

  • “在失败时创建工作项”:如果要生成进程以将 Bug 分配给其签入导致生成失败的开发人员,则设置为**“True”**。

  • “禁用测试”

    • 有关提高性能的信息,请选择 True

    • 如果您的代码必须通过某些测试,则请选择**“错误”**,然后在生成中运行一组测试。 仅可通过运行您需要的测试提高性能。 若要指定这些测试,请按类别或优先级对其进行筛选。 有关更多信息,请参见在生成过程中运行测试

  • “标签源”:如果要使用已完成的生成的名称来标记代码,那么可以设置为**“True”**。 此标签对您的团队十分有益。 例如,标签可以帮助您的团队标识您的代码的“已知的最后良好状态”版本。 否则,设置为 False 以最大程度提高性能。

有关 Default Template 生成过程模板参数的更多信息,请参见 定义基于默认模板的生成过程

后续步骤

当 Bug 中断生成时,在其他不相关的更改中进行检查之前首次修复该 Bug 对您的团队非常重要。 在修复生成中断之前,可以使用生成签入策略限制签入。 有关更多信息,请参见 中断持续集成生成后最大限度地减少代码改动

如果您使用**“持续集成”触发器,则可以尽早确定生成中断或核心单元测试失败之类的问题。 但是,如果您使用“封闭签入”**触发器,您就可以阻止这些类型的问题引入到基本代码。 有关更多信息,请参见 定义封闭签入生成过程以验证更改

相关主题

有关如何有效可靠地集成和部署复杂软件项目的更多信息,请参见 连续生成和部署