特点
托管映像更新
我们将推出更新,使 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_issuer 和 workload_identity_federation_subject 属性。
详细信息
Gradle@4任务
已创建一个新的 Gradle@4 任务,支持 Gradle 8.0。 从 Gradle 开始,Gradle@4 任务移除了内置代码覆盖率选项。 要在管道中将代码覆盖率用于 Gradle,请执行以下操作:
- 在 build.gradle 文件中指定代码覆盖率插件。 有关详细信息,请参阅 Gradle 代码分析选项。
- 在任务之后,在管道中使用
Gradle@4任务。
SonarQube 分析配置已移至 任务中的 SonarQube 或 Prepare Analysis Configuration 扩展。
请求某个阶段运行的用户身份标识
为了提高 YAML 管道的安全性,你可能希望知道谁请求了要运行的阶段。 为满足此需求,我们将添加两个新的预定义变量,Build.StageRequestedBy 和 Build.StageRequestedById。 这些变量与 Build.RequestedFor 和 Build.RequestedForId 变量类似,但适用于阶段,而不是运行。
例如,当用户显式触发用户操作时,比如在手动触发某个阶段或再次运行一个阶段,其标识用于填充这两个变量。
后续步骤
注释
这些功能将在未来两到三周内推出。
请去 Azure DevOps 上看看。
如何提供反馈
我们很乐意听到你对这些功能的看法。 使用帮助菜单报告问题或提供建议。
你还可以在 Stack Overflow 上获取社区的建议和问题解答。