共用方式為


Azure Pipelines - 短期衝刺 253 更新

特徵

托管映像更新

我們正在推出更新,以讓 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 服務連線時,您會看到新的聯盟認證:

FIC 範例的螢幕快照。 的螢幕快照

在建立應用程式註冊或管理的身分的同盟認證時,請再次複製這些值。

Automation

使用 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 分析的組態已移至工作 SonarQube 或 SonarCloud 擴充功能。

請求運行階段的使用者身份識別

為了增強 YAML 管線的安全性,您可能想知道是哪位要求運行某個階段。 若要解決此問題,請新增兩個新的預先定義變數,Build.StageRequestedByBuild.StageRequestedById。 這些變數類似於 Build.RequestedForBuild.RequestedForId 變數,但適用於階段,而不是適用於執行。

例如,當使用者明確觸發某個操作時,例如手動觸發某個階段或重新執行某個階段,其身分識別會被用來填入這兩個變數。

後續步驟

備註

這些功能將在未來兩到三周內推出。

打開 Azure DevOps 去看看吧。

如何提供意見反應

我們很樂意聽到您對於這些功能的看法。 使用說明功能表來回報問題或提供建議。

提出建議

您也可以在 Stack Overflow上取得社群所回答的建議和問題。