Azure Pipelines - Sprint 253 更新

特点

托管映像更新

我们将推出更新,使 Azure Pipelines 的托管代理安全且最新。 这些更新包括添加对 Ubuntu-24.04、Windows 2025 映像和 macOS-15 Sequoia 的支持,同时弃用 Ubuntu-20.04 和 Windows Server 2019 等旧映像。

有关更多详细信息,请访问我们的 博客文章

macOS-15 Sequoia 已正式发布

从 4 月 1 日开始,镜像 macOS-15 将在 Azure Pipelines 托管代理上可用。 若要使用此映像,请更新 YAML 文件以包括 vmImage:'macos-15'

- job: macOS15
  pool:
    vmImage: 'macOS-15'
  steps:
  - bash: |
      echo Hello from macOS Sequoia
      sw_vers

有关已安装的 macOS-15 软件,请参阅 映像配置

指定 macOS-14 时,仍会使用 macOS-latest 映像。 我们将在 4 月份更新 macOS-latest 以使用 macOS-15

Windows-2025 映像现已提供预览版

windows-2025 映像目前为预览版,适用于 Azure Pipelines 托管代理。 若要使用此映像,请更新 YAML 文件以包括 vmImage:'windows-2025'

- job: win2025
  pool:
    vmImage: 'windows-2025'
  steps:
  - pwsh: |
      Write-Host "(Get-ComputerInfo).WindowsProductName"
      Get-ComputerInfo | Select-Object WindowsProductName
      Write-Host "`$PSVersionTable.OS"
      $PSVersionTable.OS

有关 Windows Server 2025 已安装的软件,请参阅 映像配置

ubuntu-latest 管道映像将开始使用 ubuntu-24.04

在接下来的几周内,管道作业指定 ubuntu-latest 将开始使用 ubuntu-24.04 而不是 ubuntu-22.04

有关使用不再位于图像上的 ubuntu-24.04 工具的任务的指南,请参阅我们的 博客文章。 若要继续使用 Ubuntu 22.04,请使用 ubuntu-22.04 映像标签:

- job: ubuntu2404
  pool:
    vmImage: 'ubuntu-24.04'
  steps:
  - bash: |
      echo Hello from Ubuntu 24.04
      lsb_release -d
  - pwsh: |
      Write-Host "`$PSVersionTable.OS"
      $PSVersionTable.OS

ubuntu-20.04 管道映像已弃用,将于 4 月 1 日停用

我们即将弃用对 Azure Pipelines 中 Ubuntu 20.04 映像的支持,因为它的支持即将结束。 在我们的 博客文章中查找弃用计划和降级时间表。

工作负荷标识联合使用 Entra 颁发者

就在一年多前,我们 正式推出工作负载身份联合。 工作负载标识联合允许你配置服务连接而不使用机密。 支持服务连接的标识(应用注册、托管标识)只能用于预期目的:标识联合凭据中配置的服务连接。

现在,我们将更改新 Azure 和 Docker 服务连接的联合凭据的格式。 现有服务连接将像以前一样工作。

  Azure DevOps 颁发者 条目颁发者(新服务连接)
发行人 https://vstoken.dev.azure.com/<organization id> https://login.microsoftonline.com/<Entra tenant id>/v2.0
使用者 sc://<organization name>/<project name>/<service connection name> <entra prefix>/sc/<organization id>/<service connection id>

配置没有变化,获取令牌的方式保持不变。 管道任务不需要更新,可以像以前一样继续工作。

创建服务连接的步骤不会更改,在大多数情况下,新颁发者不可见。 手动配置 Azure 服务连接时,会显示新的联合凭据:

在为应用注册或托管标识创建联合凭据时,请按照之前的方式复制这些值。

自动化

使用 REST API 在自动化中创建服务连接时,请使用 API 返回的联合凭据:

authorization.parameters.workloadIdentityFederationIssuer
authorization.parameters.workloadIdentityFederationSubject

同样,当与 Terraform azuredevops 提供程序创建服务连接时, azuredevops_serviceendpoint_azurerm 资源返回 workload_identity_federation_issuerworkload_identity_federation_subject 属性。

详细信息

Gradle@4任务

已创建一个新的 Gradle@4 任务,支持 Gradle 8.0。 从 Gradle 开始,Gradle@4 任务移除了内置代码覆盖率选项。 要在管道中将代码覆盖率用于 Gradle,请执行以下操作:

  • 在 build.gradle 文件中指定代码覆盖率插件。 有关详细信息,请参阅 Gradle 代码分析选项
  • 任务之后,在管道中使用Gradle@4任务。

SonarQube 分析配置已移至 任务中的 SonarQubePrepare Analysis Configuration 扩展。

请求某个阶段运行的用户身份标识

为了提高 YAML 管道的安全性,你可能希望知道谁请求了要运行的阶段。 为满足此需求,我们将添加两个新的预定义变量,Build.StageRequestedByBuild.StageRequestedById。 这些变量与 Build.RequestedForBuild.RequestedForId 变量类似,但适用于阶段,而不是运行。

例如,当用户显式触发用户操作时,比如在手动触发某个阶段或再次运行一个阶段,其标识用于填充这两个变量。

后续步骤

注释

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

请去 Azure DevOps 上看看。

如何提供反馈

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

提出建议

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