微软 Azure DevOps Server 2019 Update 1 (TFS 2019.1)

2022-11-02,,,,

1、概述

微软在2019年5月发布Azure DevOps Server 2019后不到2个月的时间里,就快速准备好了第一个升级包(2019 Update 1),并计划在几周后发布正式版本。也许你还没来得及升级TFS,也许你还在观望,但是这个版本一定会引起你的关注。它不仅修复了Azure DevOps 2019大版本中的缺陷,将软件提升到了前所未有的稳定级别;还在升级包中增加了大量引人注目的新功能,集成了近期微软在Azure DevOps云端发布的大部分成熟功能。下面我们从各功能模块的角度,逐个看看这个升级包的新特性。

2、Boards (工作项)

新增Basic流程模板New Basic process

在之前所有版本的TFS和Azure DevOps Server中,存在三个开箱即用的过程模板(Agile, Scrum和CMMI)。每个过程模板适用于不同的开发管理模式,为开发团队提供强大而灵活的项目交付和跟踪功能。但是,如果开发团队没有使用敏捷或CMMI模式管理自己的开发工作,或者并没有接触过敏捷和CMMI,他们对DevOps Server中这些默认模板中的概念和定义就会变得非常陌生。我们辅导过的许多开发团队,都会说”TFS系统中的概念比较晦涩难懂,如果没有人指导,不知道如何开始。”

为了解决这个问题,在最新版本的Azure DevOps Server 2019.1中,微软提供了一个比较通用的基础过程模板(Basic)。在基础模板中,开发团队可以使用常见的概念和过程管理和跟踪自己的开发工作。这些概念与大众化的软件比较接近,例如其中包含了问题、任务等工作项、状态分为“To Do、Doing、Done”。基础模板为开发团队提供了一条应用Azure DevOps Server的快速通道,大幅减低的开发团队的应用门槛。

改进状态选项的排序

在Azure DevOps Server中,状态(之前版本也叫状况)字段是用来控制工作项流程中。在之前的版本中,这个字段的选项的选项按照名称进行排序,如果是汉字的话,则按拼英排序。把流程顺序按拼音排序,并没有反映出流程的顺序,在实际操作中给用户带来许多困惑。最新版本根据工作项中的流程定义做自动排序,很好的解决了用户的困惑。

取消工作项升级功能

在以前的版本中,如果系统升级到了新的版本,用户可以选择是否将新功能应用到当前团队项目中,例如增加Epic。根据我们的实践经验,这个功能在许多情景下都会失败,估计这也是微软取消这个功能的原因。在新的版本中,需要管理员自行修改xml工作项定义,来实现新的功能。

丰富的工作项附件管理功能

工作项附件功能将开发团队的文档集中存储在Azure DevOps Server,并且与相关的工作项紧密靠近在一起,当你需要需求说明书时,你会发现它在工作项的身边。

DevOps Server 2019.1大幅改进了工作项附件的管理功能,你可以在工作项的任意位置(不需要打开附件页签)就可以将文档拖拽上传,还可以使用列表、图表等视图查看附件,还可以预览附件;对于预览附件,目前只适用于PD、HTML、图片等文档,短时间内不要期望Word、Excel和PPT等文档。

使用徽章共享团队看板

现在,我们可以可以像使用管道中的构建或部署徽章一样,在团队项目的首页调用团队在团队的看板信息;通过徽章,快速展示团队积压工作的数量。可以将标记配置为仅显示正在进行的列或所有列,甚至在项目是开放源代码的情况下使标记公开可见。

工作项查询系中新增宏命令

在开发过程中,我们通常基于迭代来统计和分析已经发生的工作和即将发生的工作。但是也经常有基于日历的统计分析需求,例如我们需要了解上周、上月、今年的工作。现在,Azure DevOps Server提供了一组@StartOf的宏命令,帮助我们实现基于日历的统计需求:

l @StartOfYear

l @StartOfMonth

l @StartOfWeek

l @StartOfDay

例如,在工作项查询中我们加入字句“状态修改日期>=@StartOfYear, 并且,状态修改日期<=@StartOfYear(“+3M”)”,就可以查询出今年一季度的变更状态的工作项。

修改和编辑讨论

在Azure DevOps Server中,工作项的讨论信息是一个类似讨论板的功能,所有的讨论信息不能被更改。现在,你可以修改删除这些讨论信息了。但是,和工作项的字段记录一样,所有对讨论的更改删除操作,都出现在历史记录中。

将查询结果导出CSV文件中

是不是还在苦恼如何将查询结果导出到Excel中?是不是还在苦恼Excel中的团队菜单不见了?现在,你可以不需要任何Excel插件,直接将工作项查询结果导出到CSV文件中,供Excel等工具使用。

3、Repos代码库

为自动完成拉请求重新运行过期的生成

Azure Repo现在将自动对已由拉请求策略触发的过期版本进行排队。这适用于已通过所有其他策略并设置为自动完成的拉请求。

以前,当请求具有必需的审阅者等策略时,审批过程可能会花费太长时间,并且关联的生成可能会在审阅者批准请求之前过期。如果拉请求被设置为自动完成,它将保持阻止状态,直到用户手动将过期的生成排队。通过此更改,生成将自动排队,以便在成功生成后自动完成请求。

注意:

此自动化将在每个拉请求中最多对五个过期的生成进行排队,并且只尝试对每个生成重新排队一次。

新增拉取请求的合并方式

新增了两种拉取请求的合并方式:Fast-Forward merging 和 Semi-Linear merging (also called "Rebase and Merge").

使用分支筛选拉取请求

拉请求让团队在将代码合并到主分支之前审查代码,并给出更改的反馈。它们已经成为许多团队工作流程的重要组成部分,因为您可以逐步完成建议的更改,留下注释,并投票批准或拒绝代码更改。为了让您更容易找到拉请求,现在在新版本中添加了一个过滤选项,允许您使用目标分支搜索拉取请求。

使用插件实现代码高亮和智能提示

目前,Azure DevOps Server为Monaco editor编辑器支持的语言子集发布语法突出显示。但是,许多人希望为不支持的语言创建自己的语法突出显示。现在,你可以通过插件定义的方式,增加自己的代码高亮功能和智能提示。

在快速修改功能中改进文档编码

早在2016年,我就向Azure DevOps Server产品组反馈的这个问题,在2019.1版本中终于得到了改进。

在之前的版本中,如果源代码文件为GBK编码(Eclipse Java中文开发团队大多都是这样),在Web编辑器中,如果你修改了文件,TFS直接将文件重写为UTF-8编码,系统不会有任何提示。这样导致了持续集成出现异常,或者class文件发布到Linux服务器上一下运行异常。

现在,当您试图保存一个不是通过Web(只支持UTF编码)进行UTF编码的文件时,系统会给出警告。此外,Azure DevOps Server还通过web push端点添加了对utf-16和utf-32编码的支持。这意味着系统将保留编码类型,这样您就不必将它们重写为UTF-8。

在代码库中支持Go语言的get命令

Go是一种开源编程语言,也称为Golang。在go中,可以使用get命令下载和安装包和依赖项。通过这个更新,我们在一个Azure DevOps存储库中添加了对Go-Get的支持。使用Go-Get,您将能够下载包及其依赖项,这些依赖项由导入路径命名。还可以使用导入关键字指定导入路径。

4、Pipelines流水线

增强YAML功能

在最新的2019.1版本中,Azure DevOps Server大幅提高了YAML语言在流水线中的应用,这些提示包括了

l 在YAML定义中使用tags触发流水线

l 在YAML定义中使用容器资源

l 增加设置:如果拉取请求已经更新,自动取消流水线

l 在yaml管道中选择签出代码的目录

l 增加编辑yaml文件的任务助手

l 增加用于Yaml管道的带IntelliSense的Web编辑器

为Yaml优化的新Azure应用程序服务任务

在生成日志中链接到代码行

现在可以共享到生成日志中特定行的链接。这将在与其他团队成员协作诊断构建失败时帮助您。只需从结果视图中选择一个日志行,就可以获得一个链接图标。

流水线资源权限管理

在yaml文件中引用时,需要为受保护的资源(例如,服务连接、变量组、代理池、安全文件)提供安全性。同时,系统希望让您更容易地设置和使用管道,这些管道将这些类型的资源用于非生产场景。在之前的版本中,系统添加了一个设置,将资源标记为“已授权在所有管道中使用”。

有了这个更新,我们可以让您更容易地修复资源授权问题,即使您没有将资源标记为这样。在新的经验中,当一个构建由于资源授权错误而失败时,您将看到一个选项,明确授权使用管道中的这些资源,然后继续。具有授权资源权限的工作组成员将能够从失败的生成中完成此操作。

在流水线的测试中新增插件定义点

在新版本中,在流水线的测试页签中新增了两个可以定制的点:

l 工具栏中的自定义操作按钮

l 详细信息窗格中的自定义详细信息选项卡

管理代理池

项目设置中的“代理池管理”页已用新用户界面更新。现在,您可以轻松地看到池中运行的所有作业。此外,您还可以了解作业不运行的原因。

在部署组中部署失败的目标环境

默认情况下,当重新部署以前失败的运行时,Azure管道用于重新运行所有作业。现在,可以通过在部署时配置部署选项来覆盖此行为。通过选择部署组中的“所有作业”和“限制失败目标”选项,重新运行将运行所有作业并将部署跳过到最新的目标。

失败时自动重新部署

当阶段的部署失败时,Azure管道现在可以自动重新部署上次成功的部署。通过在后期部署条件中配置自动重新部署触发器,可以将阶段配置为自动部署上次成功的版本。微软计划在将来的Sprint中向自动重新部署配置添加其他触发事件和操作。

支持Red Hat Enterprise Linux 6

通过此更新,Azure DevOps Server添加了对Red Hat Enterprise Linux 6的代理支持。现在,您可以配置针对Red Hat Enterprise Linux 6平台的代理,以执行生成和发布作业。

发布过程中对长文件路径的支持

到目前为止,有一个限制阻止上传路径超过233个字符的生产结果文件。这可能会阻止您上传Linux和MacOS版本的代码覆盖率结果,文件路径超过限制。这个版本,已更新限制并支持长路径。

让持续集成忽略提交

现在,您可以告诉Azure流水线忽略提交,并跳过运行提交通常触发的管道。只需在提交消息中包含[skip ci],Azure管道将跳过ci。您还可以使用下面列出的任何变体。这对于提交到Azure Repos Git和Github Enterprise Server是受支持的:
[skip ci] or [ci skip]
skip-checks: true or skip-checks:true
[skip azurepipelines] or [azurepipelines skip]
[skip azpipelines] or [azpipelines skip]
[skip azp] or [azp skip]
***NO_CI***

5、Test Plans 测试管理

测试趋势组件

测试结果趋势(高级)小部件提供了对多个版本和发布的测试数据的近乎实时的可见性。测试结果趋势(高级)小部件显示管道或跨管道的测试结果趋势。您可以使用它跟踪每天的测试计数、通过率和测试持续时间。随着时间的推移跟踪测试质量并改进测试辅助资料是维护一个健康的DevOps管道的关键。

测试结果趋势(高级)小部件帮助您在测试结果中找到异常值,并回答如下问题:测试的运行时间是否比平常长?什么测试文件或管道会影响我的总体通过率?我的长期测试是什么?

为了帮助您回答这些问题,小部件提供了以下功能:

•显示通过率趋势、测试结果计数或测试持续时间

•基于多个构建管道或发布管道提供测试结果

•使用组合图表选项显示同一趋势上的两个指标

根据测试结果过滤随时间变化的测试计数

•按分支或测试筛选所有测试结果

按测试属性(如优先级或环境)堆叠度量

•将测试文件、所有者或管道上的数据分组

这个小部件是高度可配置的,允许您在各种场景中使用它。

通过URL分享测试结果

可以将自动测试配置为作为生成或发布的一部分运行。可以在构建或发布摘要的测试选项卡中查看已发布的测试结果。通过此更新,我们添加了一个复制结果URL功能,以便您可以与团队中的其他人共享单个测试运行结果。共享级别包括:

•运行级别

•结果级别

•在测试运行中选择单个选项卡

•共享还与配置的任何扩展选项卡兼容

当您共享URL时,查看者将在全屏视图中看到测试运行结果。

6、Artifacts 包管理

与其他功能一样,包管理中引入了大量的新功能,但是其中最让我高兴的是Maven库的上游库管理功能。

上游库现在可用于Maven。这包括主Maven中央存储库和Azure工件源。

包管理中的其他新功能,后续在专题文章中再做介绍。

7、Wiki

Markdown中支持视频和公式模板

编辑wiki时,不再需要记住添加公式、视频和yaml标记的标记语法。现在可以单击工具栏中的上下文菜单并选择所选的选项。

注意,目前支持Youtube和Microsoft Stream的视频

将工作项查询结果签入到Wiki中

现在可以将Azure Boards查询结果以表的形式嵌入到wiki页面中。下图显示了一个wiki页面的示例,其中列出了wiki中嵌入的当前sprint中发布的所有功能和所有活动Bug。页面中显示的内容正在使用现有的工作项查询。使用这个新功能,您可以创建动态内容,而无需担心手动更新wiki页面。

Wiki页面的永久链接

在之前的版本中,如果链接的网页被重命名或移动,则共享的wiki网页链接将断开。我们现在通过向URL添加页面ID引入了永久链接。这可以确保您共享的链接随着时间的推移保持不变。

在Wiki页面中显示工作项状态

在这个更新中,系统通过向页面添加工作项的状态及其ID和标题来增强wiki页面中提到的工作项。

拉式请求注释和板讨论中的工作项引用也将显示状态。

@mention users and groups

Notifications on wiki pages

Support for HTML tags

8、Reporting 报表

分析服务(Analytics)已经不再需要安装插件,在新版本中,Analytics已经成为产品的一个功能。

对于Azure DevOps用户,尤其是企业级用户,数据分析越来越成为Azure DevOps体验不可或缺的一部分。对于客户来说,帮助他们做出数据驱动的决策是一项重要的能力。

在Update 1中,客户不再需要分析扩展来使用分析。客户现在可以在项目集合设置下启用分析,这是一个比较简单的过程。

(结束)

http://www.cnblogs.com/danzhang/  DevOps MVP 张洪君

--

微软 Azure DevOps Server 2019 Update 1 (TFS 2019.1)的相关教程结束。

《微软 Azure DevOps Server 2019 Update 1 (TFS 2019.1).doc》

下载本文的Word格式文档,以方便收藏与打印。