使用路径排除规则在验证运行时将中性状态发布到 GitHub

在此更新中,我们包含了对 Azure Pipelines 的多个更新。 在 YAML 管道上,我们将拒绝访问所有管道设置为受保护资源的默认值。 此外,当 Azure Pipelines 因路径排除规则而决定不运行验证生成时,会将非特定状态发布回 GitHub。

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

注意

2021 年 9 月 28 日,Axosoft 通知 Azure DevOps 其常用 git GUI 客户端 GitKraken 的依赖项有漏洞。 查看 博客文章 以了解更多详细信息。

Azure Pipelines

Azure Pipelines

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

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

此致

Vijay Machiraju