特徵
托管映像更新
我們正在推出更新,以讓 Azure Pipelines 的託管代理程式保持安全且最新狀態。 這些更新包括新增對 Ubuntu-24.04、Windows 2025 映像和 macOS-15 Sequoia 的支援,同時不再支援 Ubuntu-20.04 和 Windows Server 2019 等較舊的映像。
如需詳細資訊,請瀏覽我們的 部落格文章。
macOS-15 Sequoia 已正式推出
macOS-15 映射將於 4 月 1 日起在 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 映像。 我們將更新 macOS-latest 以在 4 月使用 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 發行者 | Entra issuer (新的服務連線) | |
|---|---|---|
| 發行人 | 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 服務連線時,您會看到新的聯盟認證:
在建立應用程式註冊或管理的身分的同盟認證時,請再次複製這些值。
Automation
使用 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 或 SonarCloud 擴充功能。
請求運行階段的使用者身份識別
為了增強 YAML 管線的安全性,您可能想知道是哪位要求運行某個階段。 若要解決此問題,請新增兩個新的預先定義變數,Build.StageRequestedBy 和 Build.StageRequestedById。 這些變數類似於 Build.RequestedFor 和 Build.RequestedForId 變數,但適用於階段,而不是適用於執行。
例如,當使用者明確觸發某個操作時,例如手動觸發某個階段或重新執行某個階段,其身分識別會被用來填入這兩個變數。
後續步驟
備註
這些功能將在未來兩到三周內推出。
打開 Azure DevOps 去看看吧。
如何提供意見反應
我們很樂意聽到您對於這些功能的看法。 使用說明功能表來回報問題或提供建議。
您也可以在 Stack Overflow上取得社群所回答的建議和問題。