改进复制仪表板

我们很高兴地宣布对期待已久的Copy Dashboard预览版进行了一些改进。 现在可以将仪表板复制到不同的团队、同一团队或不同的项目,并且新仪表板中更新了团队和查询配置。 这进一步降低了为多个团队从头开始构建类似仪表板所需的工作。

有关详细信息,请查看以下功能说明。

概况

Azure Pipelines

报告

概况

将 Azure DevOps 管理员角色分配给 Azure AD 组

在 Azure DevOps 中配置 Azure AD 租户策略所需的 Azure DevOps 管理员角色现在可以分配给 Azure AD 组。 详细了解 如何使用 Azure AD 组管理 Azure AD 中的角色分配。

Azure Pipelines

任务自动重试

如果管道中有偶尔会失败的不稳定任务,则可能需要重新运行管道以确保其成功。 在大多数情况下,解决异常任务或脚本的最佳方法是修复任务或脚本本身。 例如,如果测试任务因为不稳定的测试而在流水线中失败,那么修正不稳定的测试并提高其可靠性总是一个好主意。 同样,如果脚本在一段时间内失败一次,最好通过引入脚本中的重试来修复脚本。

但是,在某些情况下,可能需要重试该任务。 常见的用例是下载包的任务(例如 NuGet、npm 等)。 我们经常发现,这些任务容易受到网络故障和包托管服务器上的暂时性故障的影响。 我们听到你的反馈,最好自动重试此类失败的任务,而无需再次重启整个管道。

根据你的反馈,我们添加了一项功能,用于在管道失败时自动重试任务。 如果使用 YAML 管道,则可以按如下所示设置此输入:

- task: <name of task>
   retryCountOnTaskFailure: <max number of retries>
   ...

使用经典生成或发布管道时,可以在任务的控件选项下设置此属性。

下面是使用重试时需要注意的一些事项:

  • 立即重试失败的任务。
  • 没有关于任务的幂等性的假设。 如果任务具有副作用(例如,如果任务部分创建了外部资源),则它可能会在第二次运行时失败。
  • 任务无法获得关于重试次数的信息。
  • 警告将添加到任务日志中,指示在重试之前它已失败。
  • 重试任务的所有尝试都显示在 UI 中,作为同一任务节点的一部分。

注释

需要代理版本 2.194.0 或更高版本。 不支持无代理任务。

在修饰器中使用来自另一个任务的输入

我们最近添加了一项 功能 ,用于在该管道中的另一个目标任务之前自动将任务注入管道。 现在,我们通过允许你使用目标任务的输入参数自定义注入的任务来增强该功能。 为此编写修饰器的语法如下所示:

{
    "contributions": [
        {
            "id": <my-required-task>,
            "type": "ms.azure-pipelines.pipeline-decorator",
            "targets": [
                "ms.azure-pipelines-agent-job.pre-task-tasks",
                "ms.azure-pipelines-agent-job.post-task-tasks"
            ],
            "properties": {
                "template": "my-decorator.yml",
                "targettask": <target-task-id>,
                "targettaskinputs": ["<name of input>"]
            }
        }
    ],
    ...
}

此功能仅在使用 pre-task-taskspost-task-tasks 用作注入目标时有效,并在贡献的 properties 节中指定 targettask 。 然后,您可以添加一个名为 targettaskinputs 的附加属性,并指定目标任务接受的输入参数名称列表。 这些输入现在可用于已注入的任务。

可通过此类方案实现的常见用例如下所示。 假设你要注入一个任务,该任务会自动记录生成发布的项目的名称。 工件的名称是 PublishBuildArtifacts 任务的输入。 注入的任务现在可以获取相同的输入参数并将其用于日志记录。

改进服务连接使用历史记录

当管道使用 服务连接时,该使用情况将记录在连接的历史记录中。 服务连接的管理员可以通过导航到项目设置并选择相应的服务连接来查看使用情况历史记录。 更新修复了服务连接使用历史记录中的一些问题。 修复包括以下内容:

  • 部署作业 (而不是常规作业)中使用服务连接时,未记录该使用情况。
  • 如果在管道的多个阶段使用了多个服务连接,则即使跳过了某些阶段,所有服务连接也会在其使用历史记录中显示记录。

经典管道的默认代理规范现在是 Windows-2019

在上一个发行说明中,我们 宣布 了托管图像的 vs2017-win2016 弃用计划。 为此,我们现在在 Classic pipelines 中创建新管道时,将默认代理规范更改为 windows-2019

代理规范

报告

复制仪表板改进

我们很高兴地宣布 Copy Dashboard 的第 2 阶段公开预览! 查询和配置现在随着复制操作被传递。 感谢您的耐心等待,因为我们解决一些问题所花费的时间比预期的要长。

默认启用“复制仪表板体验”功能标志(在预览功能选项下)。

若要复制仪表板,请先转到要复制的仪表板。 其次,单击菜单以显示 “复制仪表板 ”,然后单击它。

复制仪表板

接下来,提供新仪表板的名称和说明,然后选择仪表板类型、团队或项目。 选择团队仪表板时,将从相应的下拉列表框中选择新项目和团队。 对于项目仪表板,只需项目即可。

新建仪表板

单击“ 创建 ”按钮后,你将被带到新创建的仪表板。 小组件和布局保持不变。

在后台,在 共享查询中创建一个具有新仪表板名称的文件夹。 新仪表板的所有查询将复制到该文件夹。 查询名称保持不变。 具有团队设置的小组件会随新团队一起更新。 将团队配置从团队仪表板复制到项目仪表板的小组件将保留原始配置。

在燃尽图小组件中筛选 null 值

现在,可以在燃尽图小组件中使用“字段条件”来筛选空值。 此行为现在与使用相同字段条件的查询保持一致。

字段条件配置

后续步骤

注释

这些功能将在未来两到三周内推出。

请去 Azure DevOps 上看看。

如何提供反馈

我们很乐意听到你对这些功能的看法。 使用帮助菜单报告问题或提供建议。

提出建议

你还可以在 Stack Overflow 上获取社区的建议和问题解答。

谢谢

亚伦·霍尔伯格