TFS2017新特性(一)
自 Team Foundation Server 2015 中引入了基于集成式 Web 的 Release Management 以来,我们在此版本中进行了几处功能增强。
克隆、导出和导入发布定义
我们结合了发布中心内克隆、导出和导入发布定义的功能,无需安装扩展。
有关详细信息,请参阅克隆、导出和导入发布定义
“发布摘要”中显示的测试结果
在“发布摘要”页中,我们为外部服务启用了贡献点以显示特定于环境的信息。
在 Team Services 中,此功能用于显示测试作为发布环境的一部分运行时的测试结果摘要。
有关详细信息,请参阅了解发布的摘要视图
向脚本传递 OAuth 令牌
如果需要运行在 Team Services 上调用 REST API 的自定义 PowerShell 脚本以创建工作项或查询生成的信息,则需要在脚本中传递 OAuth 令牌。
配置环境时的新选项允许脚本在环境中作为任务运行以访问当前 OAuth 令牌。
有关详细信息,请参阅环境的常规选项
这是一个显示如何获取生成定义的简单示例:
部分成功部署上的触发器
生成和发布任务在“控制选项”参数中对每个任务均有“出错时继续”的选项。
在生成定义中,这会导致“生成已部分成功”结果(若设置此选项的任务应失败)。
现在,发布定义中提供同一行为。 如果任务失败,则整个发布结果将显示为“发布已部分成功”。
默认情况下,部分成功的发布将不会自动触发发布到后续环境,即使在环境部署选项中指定了此行为也不会触发。
但是,可以在每个发布环境中设置新选项(当上一发布已部分成功时,指示 Release Management 触发发布到后续环境)。
有关详细信息,请参阅环境部署触发器
使用直接存储在 GitHub 中的项目
有时你可能想要直接使用存储在版本控制系统中的项目,而无需通过生成过程传递它们,如本主题所述。
如果你的代码存储在 GitHub 存储库中,那么你现在可以执行同一操作。
有关详细信息,请参阅 TFVC、Git 和 GitHub 源
使用 ARM 的 Web 应用部署
有新版本的 Azure Web 应用部署任务,称为 AzureRM Web 应用部署。
它使用 MSDeploy 和 Azure Resource Manager 服务终结点连接。 除了基于 ASP.NET 4、Node 和 Python 的 Web 应用之外,使用此任务还可以部署 Azure Web 作业和 Azure API 应用。
此任务还支持常见发布选项,例如保留应用数据、使应用脱机和删除目标处的其他文件等功能。
更多功能(如配置转换)可能会在即将推出的版本中出现。
任务组
任务组可让你将已在生成或发布定义中定义的一系列任务封装到可添加到生成或发布定义的单个可重用任务中,如同任何其他任务一样。
可选择从封装任务提取参数作为配置变量,并提取任务信息的剩余部分。
新任务组将自动添加到任务目录,并准备好添加到其他发布和生成定义中。
有关详细信息,请参阅任务组
发布的软删除
删除发布或保留策略自动将其删除时,该发布会从概述和详细信息列表中删除。
但是,在它被永久删除之前将会在发布定义中保留一段时间(通常为 14 天)。
在此期间,该发布将显示在概述和详细信息列表的“已删除”选项卡上。
可通过打开快捷键菜单并选择“撤消删除”来还原这些发布。
有关详细信息,请参阅还原删除的发布
为每个环境保留发布和生成
发布定义的发布保留策略确定链接到它的发布和生成的保留时间。
默认情况下,发布将保留 60 天 - 将自动删除在此期间尚未部署或修改的发布。
但是,你可能想要保留更多已部署到特定环境的发布(如你的生产环境),或让其保留的时间长于刚部署到其他环境中的发布(如测试、暂存和 QA)。
如果需要重新部署该发布,还可将链接到发布的生成保留与发布同样的时间,以确保项目可用。
有关详细信息,请参阅发布和生成保留
链接的项目改进
两个新功能使得能够更轻松地处理项目和项目源:
-
可将多个项目源链接到一个发布定义。 每个项目都将下载到名为源别名的代理上的文件夹中。 现在可以编辑链接项目的源别名。 例如,更改生成定义的名称时,可编辑源别名来反映生成定义的名称。
有关详细信息,请参阅项目源别名
-
公开了许多 Build.* 格式(如 Build.BuildId 和 Build.BuildNumber)的变量以用于任务参数。 当多个源与一个发布相关联时,现在将使用你指定为主源的项目源中的值来填充这些变量。 有关详细信息,请参阅项目变量。
部署 - 手动干预任务
现在,可以在部署到环境的过程中暂停执行。
在环境中包括手动干预任务让你能够暂时停止部署、执行手动步骤,然后继续进一步的自动步骤。
手动干预后,还可拒绝部署和阻止进一步执行步骤。
有关详细信息,请参阅手动干预
SQL 数据库部署任务脚本
增强了Azure SQL 数据库部署任务以针对 Azure SQL 数据库运行 SQL 脚本。 这些脚本可作为文件或任务中的内联提供。
发布定义摘要 - 仪表板小组件
将发布定义固定到仪表板 - 制作对你的所有团队可见的发布摘要的一个简易方法。
有关详细信息,请参阅 将发布信息添加到仪表板
在某个特定时间将发布提升到某个环境
希望你的全部生产部署在午夜进行? 你可以对从其他环境选择了成功部署(或仅最新部署)的环境配置一个条件,并在特定时间对其部署。
基于多个环境中的条件部署
直到上一版本前,你可以进行并行部署(_分叉_部署),但是不能根据多个环境的状态开始部署到环境(_联接_部署)。 你现在可以实现此操作。
有关详细信息,请参阅 并行分叉和联接部署
Release Management 的 REST API
你可以使用 Release Management 的 REST API 服务来创建发布定义和发布,并管理部署发布的多个方面。
有关详细信息,请参阅 API 参考文档。 你将在本博客文章使用 ReleaseManagement REST API 中找到使用 API 的一些基本示例。
服务挂钩集成
在创建新发布、启动或完成部署或审批处于挂起或完成状态时发送发布通知。 与第三方工具(如 Slack)集成以接收此类通知。
部署到国内 Azure 云
在 Azure 经典服务终结点使用新的环境设置,将特定 Azure 云设为目标,包括预定义的国内云(如 Azure China 云、Azure US Government 云和 Azure German 云)。