Azure Pipelines - Sprint 194 更新

功能

跳过生成时,将非特定状态发布到 GitHub

使用 Azure Pipelines,始终可以在 GitHub 中验证拉取请求。 还可以指定 GitHub 存储库中的哪些 路径 应触发管道。 例如,在分支中main推送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 上获得社区的建议和问题的答案。