支援 YAML 管線檔案中的萬用字元和條件運算式

在此短期衝刺中,我們支援 YAML 管線檔案的萬用字元和條件運算式。 此外,我們已對 Azure Pipelines 裝載的映射進行多個更新。

如需詳細資訊,請參閱下列功能說明。

Azure Pipelines

Azure Repos

Azure Pipelines

新的 YAML 條件運算式

在 YAML 檔案中撰寫條件運算式,只要使用 ${{ else }}${{ elseif }} 運算式就更容易。 以下是如何在 YAML 管線檔案中使用這些運算式的範例。

steps:
- script: tool
  env:
    ${{ if parameters.debug }}:
      TOOL_DEBUG: true
      TOOL_DEBUG_DIR: _dbg
    ${{ else }}:
      TOOL_DEBUG: false
      TOOL_DEBUG_DIR: _dbg
variables:
  ${{ if eq(parameters.os, 'win') }}:
    testsFolder: windows
  ${{ elseif eq(parameters.os, 'linux') }}:
    testsFolder: linux
  ${{ else }}:
    testsFolder: mac

支援在路徑篩選條件中使用萬用字元

在管線 YAML 檔案中指定 CI 或 PR 觸發程式的包含和排除分支時,可以使用萬用字元 。 不過,指定路徑篩選時無法使用它們。 例如,您無法包含符合 src/app/**/myapp* 的所有路徑。 這被指出為數個客戶的 不便 。 此更新會填補此空白。 現在,您可以在指定路徑篩選時使用萬用字元 ( ***? ) 。

支援 Bitbucket 中的多個狀態

Azure Pipelines 與 Bitbucket 存放庫整合,並支援 CI 和 PR 觸發程式。 您可以從單一 Bitbucket 存放庫設定多個管線。 不過,當這些管線完成時,您只能在 Bitbucket 中看到一個狀態。 我們聽到來自開發人員社群 的意見反應 ,要求分別在 Bitbucket 中檢視每個管線的狀態。 透過此更新,我們更新了對 Bitbucket 的 API 呼叫,並傳遞管線名稱的其他資訊。

Build status

允許參與者在建立驗證之前略過搜尋 PR 註解

搭配 GitHub 存放庫使用 Azure Pipelines 時,建議您 不要針對從分支存放庫收到的參與專案自動執行 PR 驗證管線。 最佳做法是先讓存放庫的其中一個共同作業者檢閱變更,然後將批註 新增 至 PR 以觸發管線。 您可以選取管線 Web 編輯器中的 [觸發程式] 功能表(適用于 YAML 管線)或 [觸發程式] 索引標籤(傳統組建管線)來設定這些設定。 您不必要求小組成員先檢閱分叉中的每個 PR,您也只能在來自非小組成員的貢獻上強制執行此原則。

透過此更新,我們可讓您略過從任何參與者收到的參與中尋求 PR 批註。 身為非小組成員,當您建立分支並建立上游的 PR 時,在合併 PR 之前,您不會被視為上游存放庫的參與者。 合併 PR 之後,您就會被視為參與者。 藉由選取如下所示的新選項,當非小組成員第一次從分叉提交 PR 時,小組中的某人必須檢閱 PR,並新增批註以觸發管線。 但是,合併 PR 之後,該非小組成員所做的任何進一步貢獻都會直接觸發管線,而不需要等待 PR 批註。

Require a team member's comment before building a pull request

內含 Visual Studio 2022 的 Windows Server 2022 現已在 Microsoft 裝載的代理程式中提供 (預覽)

Windows Server 2022 和 Visual Studio Enterprise 2022 Preview 現在可在 Microsoft 裝載的代理程式上預覽。 您可以藉由在管線中將 影像參考 windows-2022 為映射來使用它。

pool:
  vmImage: 'windows-2022'

steps:
- task: NuGetToolInstaller@1
- task: NuGetCommand@2
  inputs:
    restoreSolution: '**/*.sln'
- task: VSBuild@1 # Visual Studio 2022 build
  inputs:
    solution: '**/*.sln'
    msbuildArgs: '/p:DeployOnBuild=true /p:WebPublishMethod=Package /p:PackageAsSingleFile=true /p:SkipInvalidConfigurations=true /p:DesktopBuildPackageLocation="$(build.artifactStagingDirectory)\WebApp.zip" /p:DeployIisAppPath="Default Web Site"'
    platform: 'Any CPU'
    configuration: 'Release'

當您在 YAML 管線中參考 windows-latest 集區時,它仍然表示 windows-2019,而不是 windows-2022,而後者處於預覽狀態。

相較于 Windows Server 2019,Windows Server 2022 管線映射有不同的工具和工具版本。 您可以在軟體 公告問題和 虛擬環境存放庫中 查看詳細資料。

在 Microsoft 裝載的代理程式上正式推出 macOS 11

macOS 11 現已正式在 Microsoft 裝載的代理程式上提供。 您可以藉由在管線中將 影像參考 macos-11 為映射來使用它。

pool:
  vmImage: macos-11

macOS 11 管線映射有不同的工具和工具,若要深入瞭解此版本,您可以在這裡 看到完整的檔

移除 Microsoft 裝載代理程式上的 Ubuntu 16.04 映射

如稍早 所述 ,我們將在 2021 年 9 月 20 日從 Microsoft 裝載的代理程式中移除 Ubuntu 16.04 映射。 標準標準版對 Ubuntu 16.04 的傳統 5 年支援于 2021 年 4 月結束。 您必須將 ubuntu-16.04 管線移轉至 ubuntu-18.04 或 ubuntu-latest,這會在 Ubuntu 20.04 LTS 上執行。

使用 Ubuntu-16.04 的組建已在其中記錄警告。 為了確保每個人都知道這一變化,我們排定了 2 個簡短的「棕色」。 Ubuntu 16.04 組建在棕色期間將會失敗。 因此,建議您在 2021 年 9 月 6 日之前移轉工作流程。

發佈會排定下列日期和時間(請注意,這些已從稍早宣佈的時間延長一小時):2021 年 9 月 6 日下午 4:00 UTC – 2021 年 9 月 14 日下午 10:00 UTC – 2021 年 9 月 14 日下午 4:00 UTC – 10:00 UTC

Azure Repos

新版 TFVC 頁面已正式推出

我們已更新 Azure DevOps 中的各種頁面,以使用新的 Web 平臺,目標是讓體驗在各種服務中更一致且更容易存取。 TFVC 頁面已更新為使用新的 Web 平臺,且這些變更已預覽幾個月。 透過此更新,我們會正式推出新的 TFVC 頁面。 透過此更新,您將不會再在其使用者設定中看到稱為「新增 TFVC 頁面」的預覽功能。

將分支建立者設定為不要取得其分支上的「管理權限」

當您建立新的分支時,您會在該分支上取得「管理許可權」。 此許可權可讓您變更其他使用者的許可權,或允許其他使用者參與該分支。 例如,分支建立者可能會使用此許可權來允許另一個外部使用者變更程式碼。 或者,它們可能會允許管線(建置服務識別)變更該分支中的程式碼。 在某些合規性需求較高的組織中,使用者不應該能夠進行這類變更。

透過此更新,您可以在小組專案中設定任何和所有存放庫,並限制分支建立者取得「管理許可權」許可權。 若要這樣做,請流覽至專案設定,選取 [存放庫],然後針對所有存放庫或特定存放庫設定。

All repositories settings

此設定預設為開啟,以模擬現有的行為。 但是,如果您想要使用這項新的安全性功能,則可以將其關閉。

不允許分支使用者投票給其上游的 PR

使用 Azure Repos 時,存放庫上具有「讀取」許可權的使用者可以派生存放庫,並在其分支中進行變更。 若要提交提取要求及其上游變更,使用者需要上游的「參與提取要求」許可權。 不過,此許可權也會控管誰可以投票處理上游存放庫中的提取要求。 因此,在使用者不是存放庫參與者的情況下,可以提交提取要求,並根據您設定分支原則的方式合併提取要求。

在升階內部來源模型的組織中,分支和參與是常見的模式。 為了進一步保護及推廣此模式,我們會將提取要求的許可權從「參與提取要求」變更為「參與」。 不過,所有組織中預設不會進行這項變更。 您必須加入宣告並選取存放庫上的新原則,稱為「嚴格投票模式」,才能切換此許可權。 如果您依賴 Azure Repos 中的分支,建議您這麼做。

Repository settings

下一步

注意

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

前往 Azure DevOps 並查看。

如何提供意見反應

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

Make a suggestion

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

感謝您!

亞倫·霍爾伯格