LabDefaultTemplate 工作流活动

本主题介绍LabDefaultTemplate.11.xaml文件描述Windows工作流活动。 LabDefaultTemplate定义在实验室环境允许您,以生成、部署和测试应用程序的Lab Management工作流过程。 若要了解有关Windows工作流,请参见MSDN网站上的以下页面 Windows workflow foundation (WF)开发人员的介绍在.NET 4

要求

  • Visual Studio 旗舰版, Visual Studio 高级专业版, Visual Studio 专业测试工具版

初始化工作流

过程根活动

LabDefaultTemplate的根是TfsBuild.Process事件。 此 ActivityBuilder 初始化工作流生成定义的全局参数从"实验室工作流参数向导提供的在生成定义窗口和输入。

Ff652752.collapse_all(zh-cn,VS.110).gif参数

LabWorkflowParameters 参数包含在实验室工作流参数向导所提供的数据。 此参数是包含以下对象的 LabWorkflowDetails 对象:

BuildDetails

存储生成的 Microsoft.TeamFoundation.Lab.Workflow.Activities.BuildDetails 对象用于生成详细信息,部署,并且测试工作流。

DeploymentDetails

存储信息对于生成部署在工作流中所需的 Microsoft.TeamFoundation.Lab.Workflow.Activities.DeploymentDetails 对象。

EnvironmentDetails

存储信息以确定该环境用于编译,部署和测试方案的 Microsoft.TeamFoundation.Lab.Workflow.Activities.LabEnvironmentDetails 对象。

TestParameters

存储的 Microsoft.TeamFoundation.Lab.Workflow.Activities.RunTestDetails 对象需要创建自动测试参数详细信息测试运行。

以下参数同时声明全局范围内:

参数

类型

Metadata

ProcessParameterMetadataCollection

Verbosity

指定信息写入日志的 Verbosity 的枚举值。

BuildNumberFormat

指定生成号格式的 String

SupportedReasons

指定生成的根源的 BuildReason的枚举值。

应用程序部署工作流顺序

应用程序部署工作流

应用程序部署工作流 顺序控制整个生成,部署,并且测试方案。

应用程序部署工作流 声明以下变量:

  • BuildDetail: IBuildDetail 对象。

  • LabEnvironmnetUri:指定环境URI生成部署的 String

  • BuildLocation:指定生成位置的 String

  • SnapshotId:指定一个虚拟机的快照的标识符的 String

  • QueueBuildId:在队列指定生成标识符的 Int32

运行生成

更新生成号

更新生成号 展开并返回该 BuildNumberFormat 参数的生成号。 更新生成号Microsoft.TeamFoundation.Build.Workflow.Activities.UpdateBuildNumber 事件。

获取生成详细信息

获取生成详细信息 返回需要运行的数据或访问工作流向导中指定的生成。 IBuildDetail对象在 BuildDetail 变量存储。

获取生成详细信息Microsoft.TeamFoundation.Build.Workflow.Activities.GetBuildDetail 事件。 模板设置下列属性:

  • 结果 返回到 BuildDetail 变量的索引IBuildDetail对象。

“如果需要生成”活动

如果生成所需的 确定新的生成是否为Team System生成所需的过程。 如果条件匹配,工作流运行 请生成 序列。

“进行生成”活动

请生成 顺序启动生成,等待生成完成,然后将生成位置。

开始生成工作流

开始生成工作流 排队到指定的生成控制器的新生成并返回已排队生成的ID在 QueueBuildId 变量中。 开始生成工作流RunWorkflow 事件。 模板设置下列属性:

  • BuildDefinition 设置为 LabWorkflowParameters 参数的 BuildDetails.BuildDefinitionName 属性。

  • ProjectName 参数设置为 BuildDetail变量的 TeamProject 属性。

等待生成完成

等待生成完成 挂起执行,直到生成完成时或超时间隔。 如果超时时间已到达,则此活动会引发异常。 该事件将生成的状态。BuildStatus 变量和数据提供有关 ChildBuildDetail变量的新生成。 等待生成完成WaitForWorkflow 事件。 模板设置下列属性值:

  • AllowPartiallySucceededBuild 设置为true

  • BuildDetails 返回新的生成数据。ChildBuildDetail 变量。

  • MaxWaitTime 设置无限大。

  • QueueBuildId 返回生成 QueueBuildId 变量的队列ID。

设置的生成位置

设置的生成位置 分配生成的位置。ChildBuildDetail 变量为 LabWorkflowParameters 参数的 BuildDetails.BuildUri 属性。

部署应用程序

更新部署摘要

更新部署摘要 编写部署目标环境的名称对生成的页。 更新部署摘要WriteDeploymentInformation 事件。

GetBuildLocationAndBuildNumber

GetBuildLocationAndBuildNumber 返回生成的放置位置。BuildLocation 变量。 GetBuildLocationAndBuildNumberGetBuildLocationAndBuildNumber 事件。 模板设置下列属性:

  • BuildDetails 设置为 LabWorkflowParameters 参数包含的 BuildDetails 对象

  • BuildNumber 返回生成号为 BuildNumber 变量。

  • 结果 返回生成的位置设置为 BuildLocation 变量

  • SelectedBuild 返回到包含有关生成服务器的生成数据的 SelectedBuildDetail 变量的一 IBuildDetail 对象。

“计算所需的生成位置”活动

如果 计算所需的生成位置 条件匹配,计算生成路径 添加平台和生成配置子文件夹添加到放置位置。

“如果用户选择了存储环境”活动

如果用户选择存储的环境 检查该环境部署和 指示错误 引发异常,如果环境存储在库中。

获取实验室环境

获取实验室环境 返回环境的URI。LabEnvironmentUri 变量。 获取实验室环境GetLabEnvironmentUri 事件。 模板设置以下properities:

  • LabEnvironmentName 设置为 LabWorkflowParameters 参数的 EnvironmentDetails.LabEnvironmentName 属性的值。

  • ProjectName 设置为 BuildDetail 变量的 TeamProject 属性的值。

  • 结果 返回实验室环境的URI。LabEnvironmentUri 变量。

  • TeamProjectLabLocationName 设置为 LabWorkflowParameters 参数的 EnvironmentDetails.HostGroupName 属性的值。

  • TfsServerUrl 设置为null。

“如果还原快照”活动

如果还原快照 确定用户是否请求将环境还原为干净的快照。 如果该条件时,还原快照 顺序运行;否则 清理未指定快照 写入生成摘要的警告消息。

“还原快照”活动

还原快照 序列,获取快照详细信息 计算该快照的ID,并且,还原到快照的实验室环境 执行恢复。

获取快照详细信息

获取快照详细信息GetLabEnvironmentSnapshotId 事件。 模板设置下列属性:

  • LabEnvironmentUri 设置为 LabEnvironmentUri 变量的值。

  • 结果 返回快照的ID。SnapshotId 变量。

  • SnapshotName 设置为 LabWorkflowParameters 参数的 EnvironmentDetails.SnapshotName 属性。

还原到快照的实验室环境

还原到快照的实验室环境RestoreLabEnvironment 事件。 模板设置下列属性:

  • LabEnvironmentUri 设置为 LabEnvironmentUri变量的值。

  • SnapshotId 设置为 SnapshotId变量的值。

“如果需要部署”活动

如果需要部署 确定用户是否请求部署。

“进行部署”活动

如果该条件时,执行部署 顺序运行。

等待工作流功能准备就绪

等待工作流功能准备就绪 挂起执行,直到该环境的工作流功能准备就绪或超时间隔为止。 如果超时间隔已过时引发异常。 等待工作流功能准备就绪WaitForWorkflowCapabilityServices 事件。 模板设置下列属性:

  • LabEnvironmentUri 设置为 LabEnvironmentUri 变量的值。

  • MaxWaitTime 设置为20分钟

  • RepairCapabilityBeforeWaitBegins 设置为false。

“运行部署脚本”活动

运行部署脚本 正在 DeploymentDetails.Scripts 属性包含列表 LabWorkflowParameters 参数的每个部署脚本的 运行实验室系统上的脚本 序列。

“在实验室系统上运行脚本”活动

运行实验室系统上的脚本 顺序执行在虚拟机中指定的脚本在环境中。 运行实验室系统上的脚本 声明以下变量:

初始化代理标记和部署脚本

初始化代理标记和部署脚本 展开该脚本的宏和标记并返回该 ScriptDetails 对象的结果。 初始化代理标记和部署脚本InitializeAgentSpecAndEnvironmentVariables 事件。 模板设置下列值:

  • BuildLocation 设置为 BuildLocation 变量的值。

  • DeploymentScriptDetails 设置为重复 DeploymentDetails.Scripts 字符串的值。

  • LabEnvironmentUri 设置为 LabEnvironmentUri 变量的值。

  • 结果 返回已展开的脚本来 scriptDetails 变量。

实验室代理范围

实验室代理范围 确定实验室代理是否已安装并运行在目标虚拟机然后调用 运行部署脚本 执行该脚本。 如果任何一个脚本在计算机,会引发异常。 实验室代理范围Microsoft.TeamFoundation.Build.Workflow.Activities.AgentScope事件。 模板设置下列属性:

  • MaxExecutionTime 设置无限大。

  • MaxWaitTime 设置为5分钟。

  • ReservationSpec 设置为Microsoft.Te: 是 scriptDetails 变量的 AgentSpec 属性的amFoundation.Build.Client.BuildAgentSpec对象。

运行部署脚本

运行部署脚本 执行在目标虚拟机的部署脚本。 运行部署脚本RunDeploymentScript 事件。 模板设置下列值:

  • ScriptDetails 设置为 scriptDetails 变量的值。

  • ThrowOnError 设置为true。

  • SharedLocationForNetUse 设置为 BuildLocation 变量的值。

成功的应用程序部署

成功的应用程序部署 对生成摘要将信息写入。 成功的应用程序部署WriteDeploymentInformation 事件。

后期部署快照

后期部署快照 确定用户是否请求该环境的快照将在部署后保存。 如果此条件时,采用后期部署快照 顺序执行。 否则,文章中未指定的部署快照 写入记录的警告消息。

“获取后期部署快照”活动

采用后期部署快照 顺序

采用后期部署快照 声明以下变量:

  • PostDeploymentSnapshotChainId: Int64

  • PostDeploymentSnapshotName: String 模板设置默认值设置 BuildDetails 变量的 BuildNumber 属性的值。

“检查快照名称”活动

检查快照名称 确定快照名称是否指定了。 如果该条件时,使用指定的名称;否则使用默认值。

采用后期部署快照

采用后期部署快照 是创建快照的 SnapshotLabEnvironment 事件。 模板设置下列属性:

  • LabEnvironmentUri 设置为 LabEnvironmentUri 变量的值。

  • SnapshotChainId 返回快照的ID。PostDeploymentSnapshotChainId 变量。

  • SnapshotName 设置为 PostDeploymentSnapshotName 变量的值。

采用成功的快照

采用成功的快照 写入生成摘要快照名称。 采用成功的快照WriteDeploymentInformation 事件。

快照中添加了连接链接

快照中添加了连接链接 写入快照的URL "生成摘要的。 快照中添加了连接链接WriteDeploymentInformation 事件。

运行测试

“运行环境测试”活动

运行在测试环境 确定是否自动测试请求。 如果该条件时,运行测试 顺序执行。

“运行测试”活动

运行测试

运行测试 声明以下变量:

  • TestCapabilityInfo:Microsoft.TeamFoundation.Lab.Client.TestingCapabilityInformation.

  • TestResults:Microsoft.TeamFoundation.Lab.Workflow.Activities.TestRunStatistics. 模板设置默认为新的TestRunStatistics对象。

等待测试功能准备就绪

等待测试功能准备就绪 挂起执行,直到该环境的测试功能准备就绪或超时间隔为止。 如果超时间隔已过时引发异常。

等待测试功能准备就绪WaitForTestCapabilityServices 事件。 模板设置下列属性:

  • LabEnvironmentUri 设置为 LabEnvironmentUri 变量的值。

  • MaxWaitTime 设置为20分钟。

  • RepairCapabilityBeforeWaitBegins 设置为false。

运行测试

运行测试 执行测试并返回测试结果。 运行测试ExecuteRemoteTestRun 事件。 模板设置下列值:

  • MaxWaitTime 设置无限大。

  • BuildNumber 设置为 BuildNumber 变量的值。

  • TestDirectory 设置为 BuildLocation 变量的值。

  • LabEnvironmentUri 设置为 LabEnvironmentUri 变量的值。

  • TestParameters 设置为 LabWorkflowParameters 对象包含的 TestParameters 对象。

  • 结果 返回包含测试结果为 TestResults 变量的Microsoft.TeamFoundation.Lab.Workflow.Activities.RunTestDetails对象。

  • 前缀 测试设置的名称对 BuildDetail 变量的 BuildNumber 属性的值。

“如果尚未传递所有测试”活动

如果所有测试未通过 确定是否测试失败并执行 设置生成的状态,如果该条件。

设置生成的状态

设置生成的状态 确定工作流是否包含应用程序的生成和部署。 如果此条件时,部分受succeded 将工作流状态到 BuildStatus.PartiallySucceeded 值。 否则,失败 设置 BuildStatus 变量设置为 Failed。

请参见

概念

实验室管理工具版工作流活动