Features
- 新的 YAML 条件表达式
- 支持路径筛选器中的通配符
- 支持 Bitbucket 中的多个状态
- 允许贡献者在构建验证之前跳过查看 PR 评论
- Windows Server 2022 with Visual Studio 2022 现已在Microsoft托管的代理上提供(预览版)
- macOS 11 Big Sur 在 Microsoft 托管代理上正式发布
- 删除 Microsoft 托管代理上的 Ubuntu 16.04 映像
新的 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 调用,并传递有关管道名称的其他信息。
允许参与者在生成验证前跳过拉取请求注释查找
将 Azure Pipelines 与 GitHub 存储库配合使用时,建议 不要自动运行 PR 验证管道来处理从分叉的存储库接收的贡献。 最佳做法是先让存储库的其中一个协作者查看更改,然后将 注释 添加到 PR 以触发管道。 可以通过在管道 Web 编辑器中选择“触发器”菜单(适用于 YAML 管道)或“触发器”选项卡(对于经典生成管道)来配置这些设置。 与其要求团队成员首先评审从分叉中发出的每一个 PR,不如只对来源于非团队成员的贡献强制实施此策略。
通过此更新,我们可以跳过从任何参与者收到的贡献中查找 PR 注释。 作为非团队成员,在创建分支并向上游创建 PR 时,在合并 PR 之前,不会被视为上游存储库的参与者。 合并 PR 后,你将被视为参与者。 通过选择如下所示的新选项,当非团队成员第一次从分支提交 PR 时,团队中的某人必须审查该 PR,并添加评论以触发流水线。 但是,合并 PR 后,该非团队成员做出的任何进一步贡献都将直接触发管道,而无需等待 PR 注释。
含 Visual Studio 2022 的 Windows Server 2022 现已在 Microsoft 托管代理上提供(预览版)
Windows Server 2022 和 Visual Studio Enterprise 2022 预览版 现已在 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
删除 Microsoft 托管代理上的 Ubuntu 16.04 映像
如 前所述,我们将在 2021 年 9 月 20 日从 Microsoft 托管代理中删除 Ubuntu 16.04 映像。 Ubuntu 16.04 的传统 5 年支持由 Canonical 于 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至10:00 UTC,2021年9月14日下午4:00至10:00 UTC。
后续步骤
注释
这些功能将在未来两到三周内推出。
请去 Azure DevOps 上看看。
如何提供反馈
我们很乐意听到你对这些功能的看法。 使用帮助菜单报告问题或提供建议。
你还可以在 Stack Overflow 上获取社区的建议和问题解答。