Azure Pipelines - Sprint 194 更新

Features

在跳过生成时向 GitHub 发布非特定状态

使用 Azure Pipelines,始终可以在 GitHub 中 验证拉取请求 。 还可以指定在 GitHub 存储库中,哪些路径应触发管道。 例如,当将更改推送到code分支时,将触发以下管道,但当更改推送到docs文件夹时不会触发。

trigger: none

pr:
 branches:
   include:
     - main
 paths:
   include:
     - code
   exclude:
     - docs

pool:
  vmImage: ubuntu-latest

steps:
- script: echo Hello, world!
  displayName: 'Run a one-line script'

管道完成后,Azure Pipelines 会将状态发布回 GitHub。 如果已对 GitHub 存储库实施分支保护策略,则 Azure Pipelines 发布的状态将确定拉取请求是否合并。

在上面的示例中,如果进行了对 docs 的更改,GitHub 当前会自动阻止拉取请求,等待 Azure Pipelines 返回状态。 但是,Azure Pipelines 不会运行验证生成,因为该路径已从触发器中排除,因此无法完成拉取请求。 客户为单个 GitHub 存储库设置路径排除触发器或多个管道通常面临此挑战。

今后,Azure Pipelines 将因路径排除规则决定不运行验证构建,并会将状态 neutral 发布回 GitHub。 这将为 GitHub 提供明确的指示,指示 Azure Pipelines 已完成其处理。

对话视图:

对话视图

查看详情:

检查详细信息

在受保护的资源中,所有管道的访问权限默认关闭

YAML 管道可以依赖于一个或多个 受保护的资源。 服务连接、代理池、变量组、安全文件和存储库都是受保护资源的示例,因为此类资源的管理员可以控制哪些管道有权访问该资源。 管理员使用资源的安全设置面板启用或禁用管道。

创建其中一个资源时,默认体验将授予对所有管道的访问权限,除非显式将其关闭。 为了改进整体安全态势,默认设置是拒绝对所有管道的访问。 若要授予对所有管道的访问权限,只需在创建体验或创建资源后打开开关即可。

新的 Azure 服务连接

使用修饰器在指定目标任务之前或之后注入任务

修饰器 是自动将任务注入管道的方法。 组织中中心团队通常使用它们来自动运行所需的合规性过程。 修饰器可与经典构建、经典版本或 YAML 管道一起使用。

目前,任务可以通过一个修饰器在每个作业开始、结束或签出任务之后注入。 若要实现控制,可以在修饰器扩展的贡献部分指定一个 target,具体如 此处所述。 我们现在正在展开目标列表以包括以下内容:

ms.azure-pipelines-agent-job.pre-task-tasks
ms.azure-pipelines-agent-job.post-task-tasks
ms.azure-release-pipelines-agent-job.pre-task-tasks
ms.azure-release-pipelines-agent-job.post-task-tasks

下面是一个修饰器示例,该修饰器在每个 PublishPipelineArtifacts 任务实例之前将一个任务注入到管道中。

{
    "manifestVersion": 1,
    "contributions": [
        {
            "id": "my-required-task",
            "type": "ms.azure-pipelines.pipeline-decorator",
            "targets": [
                "ms.azure-pipelines-agent-job.pre-task-tasks"
            ],
            "properties": {
                "template": "my-decorator.yml",
                "targettask": "ECDC45F6-832D-4AD9-B52B-EE49E94659BE"
            }
        }
    ],
    "files": [
        {
            "path": "my-decorator.yml",
            "addressable": true,
            "contentType": "text/plain"
        }
    ]
}

宣布 Windows 2016 托管映像的弃用时间表

最近,我们已将 Windows 2022 作为托管映像提供。 随着即将于 2022 年 1 月结束对 Windows 2016 的主流支持,我们从 11 月 15 日开始弃用 vs2017-win2016 映像。 此映像的完全停用计划于 2022 年 3 月停用。 由于这是常用的映像,因此我们希望提供足够的通知和时间,以便对管道进行必要的更改。

请参阅我们的 博客文章 ,详细介绍如何使用 Windows 2016 托管映像查找所有项目和管道,以及迁移到较新版本所要执行的步骤。

宣布弃用 macOS 10.14 托管映像

最近,我们已将 macOS-11 作为托管映像提供。 因此,我们将在 2021 年 12 月弃用 macOS-10.14 映像。 一旦弃用,依赖于此映像的构建将会失败。 可以从我们的 博客文章中找到有关弃用各种图像的更多详细信息。

后续步骤

注释

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

请去 Azure DevOps 上看看。

如何提供反馈

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

提出建议

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