自定义过程模板

Azure DevOps Server 2022 - Azure DevOps Server 2019

进程模板定义创建项目时可用的对象和进程。 通过自定义进程模板,可以自定义多个对象之一。 可以进行的常见自定义类型包括:

  • 将新字段添加到现有工作项类型(WIT)
  • 修改字段的值选取列表
  • 更改默认或自定义工作项类型的工作流状态、原因、转换和操作
  • 编辑工作项窗体的布局
  • 添加或删除工作项类型
  • 更改与 Azure Boards 中心关联的进程配置或默认值

注意

本文介绍用于创建在 Azure DevOps Services 上定义的项目的过程模板。 如果要查找 用于软件开发的项目模板 ,请参阅 “创建 Visual Studio 模板”。

默认进程模板定义 Azure Boards 和 Azure 测试计划使用的默认配置和工作项类型。 例如,敏捷流程模板定义下图所示的工作项类型集。

敏捷流程模板项目的概念图像。

其中许多项目依赖于用于跟踪工作的工作项类型。 例如,功能、Bug、用户情景或任务定义中定义的数据字段也用于定义工作项查询。 除了这些项目,还可以定义支持测试计划的初始项目区域和迭代、安全配置和其他默认设置。

创建项目后,可以更改配置并自定义项目。 但是,通过在创建项目之前自定义流程模板,从它创建的所有生成的项目都与一组标准团队流程匹配。 你可能想要自定义进程模板的主要原因包括:

  • 你计划创建多个项目,并希望最大程度地减少在创建的每个项目中稍后必须实现的重复任务
  • 你希望通过提供软件开发团队使用的工具集中的模板和结构,确保所有团队都遵循某些标准
  • 升级后,需要更新自定义流程模板以支持使用“配置功能”向导

如果只处理单个项目,则可以考虑只是创建项目,并在以后自定义一个或多个对象。

如何使用进程模板?

过程模板的主要用途是创建项目。 对于托管 XML 进程模型,它还用于更新项目。 项目提供一组在相互依赖的模板文件中定义的对象、项目和配置。 使用项目来组织源代码、跟踪工作和信息、生成软件和支持测试活动。

托管 XML 流程模型

本地 XML 流程模型

我应从何处着手?

在开始自定义流程模板之前,请熟悉可以配置和自定义的内容,然后相应地规划更改。

  • 如果你不熟悉处理模板,请先 查看默认进程模板

  • 若要熟悉进程模板的文件结构, 请查看每个文件 的说明或 下载进程模板

    创建项目后,可以修改项目的进程。 使用项目时,定义的流程模板的初始设置可能不再满足你的需求。

  • 如果最感兴趣的是自定义用于跟踪工作的对象(包括测试计划、测试套件和测试用例),请查看 “自定义工作跟踪体验”。 通过修改项目的 XML 定义文件进行的自定义项与在进程模板文件中进行的自定义类型相同。

    若要 添加或修改工作项的类型,可以在不更改整个流程模板的情况下执行此操作。 可以使用现有项目进行和测试更改。 对于本地 XML 进程模型,可以使用 witadmin exportwitdimportwitd 命令行工具下载和上传工作项类型的 XML 定义文件。

  • 如果你正在考虑进行广泛的自定义, 请查看所做的更改如何影响项目的维护和升级。

处理模板文件和功能区域,你可以自定义

进程模板由 9 个插件组成。每个插件定义一组执行的任务,以及创建项目时出现的屏幕。 任务设置权限、创建文件夹、上传文件、激活站点或设置其他可配置变量。 插件还指定任务在其他任务成功完成时具有的依赖项。

进程模板插件的概念图像。

重要

从 Web 门户创建项目时,将忽略多个进程模板文件。 具体而言,不支持创建报表管理器站点的文件。 若要支持项目集合的报告,请参阅 向团队项目添加报表。

若要自定义进程模板,请自定义与功能区域关联的一个或多个文件。 自定义任何一个对象非常简单时,请确保在自定义时不会中断任何依赖关系。 ProcessTemplate.xml插件文件定义要包含在模板中的插件。 此文件包含要运行以创建项目的所有任务组。 每个任务组引用一个从属 XML 插件文件,其中定义了该插件的特定任务。

插件依赖项

许多对象依赖于进程模板中其他对象的定义。 有关所需插件和插件依赖项的概述,请参阅 定义任务组和任务的依赖项。

插件和命名限制

将对象添加到进程模板时,请确保正确标记这些对象,以避免 XML 验证错误。

  • 对大多数 Team Foundation 对象的名称或标签施加限制。 有关应用于进程模板、安全组、区域和迭代节点、工作项类型和工作项字段的命名限制的概述,请参阅 命名限制

  • 自定义的大多数进程模板组件仅影响使用进程模板创建的项目。 此规则的例外是全局列表、链接类型和工作项字段。 这些对象是为项目集合定义的。

  • 每个工作项字段都有一个关联的字段引用名称,用于唯一标识每个字段。 分配引用名称后无法更改。

    此外,如果对项目集合使用 SQL Server Reporting Services,分配给工作项字段的报表名称必须与为项目集合定义的所有工作项类型匹配。 否则,上传进程模板时可能会发生验证错误,或者数据仓库数据库中可能发生冲突。

    工作项字段名称、链接类型名称和全局列表的范围限定为项目集合。 如果自定义这些对象中的任何一个,更改将反映在集合中定义的所有项目以及包含该工作项字段的工作项类型中。

  • 进程模板的最大大小为 2 GB。 自定义进程模板时,请确保更改不会超出该值的大小增加。

自定义进程模板的步骤

自定义进程模板是一个迭代过程。 需要一个在运行 Azure DevOps Server 的服务器上定义的项目集合,可在其中测试进程模板,以确保它已正确自定义。

若要自定义进程模板,首先下载现有进程模板、修改或添加文件、上传进程模板文件,然后验证所做的更改。

显示流程模板自定义工作流的概念图像。

步长 任务
第 1 步 下载进程模板。 在自定义进程模板之前,必须将其下载到本地计算机。

若要最大程度地减少必须做出的修改, 请选择最符合团队流程的模板 。 一般情况下,可以根据工作项和工作流的类型选择流程模板。
第 2 步 修改或添加文件。 通过修改、删除或添加为进程模板定义的文件来自定义进程模板。 通过修改插件或定义文件来自定义其 XML 内容。 每个插件文件和类型定义文件必须符合其 XML 架构定义。

首次自定义流程模板时,请稍作更改。 如果在不充分了解更改如何影响模板的情况下进行许多更改,则可能会遇到难以调试的多个错误的风险。

确保进程模板的名称是唯一的。 如果下载进程模板、进行更改并上传它,则必须更改其名称,或者从项目集合过度写入现有进程模板。
第 3 步 上传进程模板。 自定义模板后,将其上传到创建项目的项目集合。

理想情况下,应使用其他项目不使用的项目集合。 通过在测试床项目集合中工作,可以避免引入可能与仍在开发的现有团队流程相冲突的更改。 此外,项目集合应支持要访问的相同资源,例如项目门户和报告网站。

确保进程模板的名称是唯一的。 如果从项目集合下载了进程模板,进行了更改,并且现在正在上传模板,则必须更改其名称或删除项目集合中的现有进程模板。

上传过程执行验证检查,以确保 XML 有效。 如果在尝试上传进程模板时收到任何错误,所做的更改将导致错误。 查看所做的更改,并更正找到的任何 XML 语法错误。
第 4 步 创建项目。 若要测试新的进程模板,必须创建项目。 如果发生任何错误,请查看日志以创建项目。 它包含尝试运行的任务列表,并显示哪些任务失败。 可以将失败的任务映射回 XML,以确定错误的原因。

可以使用 TFSDeleteProject 命令行工具清理不必要的项目
步骤 5 验证对处理模板的更改。 在将流程模板置于生产模式并将其用作多个项目的基础之前,应验证它是否定义良好。 通过系统地验证每个对象和项目是否按预期工作来执行此任务。

支持自定义流程模板的工具

可以使用以下工具之一自定义进程模板:

  • 用于修改 XML 文件的任何文本编辑器或 XML 编辑器。

  • 进程编辑器工具。
    根据已安装的 Visual Studio 版本,从以下扩展之一获取流程编辑器工具。

    • Visual Studio 2019 和 2022: 到目前为止,没有可用的特定进程模板编辑器扩展。 但是,你仍然可以使用其他工具(如任何文本编辑器或 XML 编辑器)自定义进程模板。 还可以使用 Azure DevOps Web 门户进行某些自定义,尤其是对于继承的进程。
    • Visual Studio 2017:TFS 流程模板编辑器。 还可以使用此版本的流程编辑器来修改旧样式的工作项窗体。 不能使用它来编辑与新 Web 窗体关联的窗体。
    • Visual Studio 2015:TFS Power Tools