解决了来自开发者社区的多个请求

为了响应你的反馈,我们已确定你在开发者社区中请求的多项功能的优先级。 在 Pipelines 中,我们添加了对 YAML 表达式中的字符串拆分函数的支持。 此外,我们现在允许你禁用显示管道运行的最后一个提交消息。 在交付计划中,我们将团队限制从 15 增加到 20。

有关详细信息,请查看发行说明。

Azure Boards

Azure Pipelines

Azure Boards

将交付计划团队限制从 15 提高到 20

通过交付计划,可以查看组织中多个积压工作和多个团队。 以前,可以查看 15 个团队积压工作,包括积压工作和来自不同项目的团队的组合。 在此冲刺中,我们将最大限制从 15 提高到 20。

我们修复了报告工作项链接获取 API 中的 bug,以便为 System.LinkTypes.Remote.Related 链接类型返回正确的 remoteUrl 值。 在此修复之前,我们返回了错误的组织名称和缺少的项目 ID。

新板中心 bug 修复

在此冲刺中,我们修复了 New Boards Hub 的多个 bug。 可以在 New Boards Hub,Sprint 209 更新博客文章中查看 bug 修复列表。

Azure Pipelines

禁用显示管道运行的最后一个提交消息

以前,Pipelines UI 用于在显示管道运行时显示最后一个提交消息。

上一个提交消息的示例

例如,当 YAML 管道的代码位于存储库中时,此消息可能会让人感到困惑,而存储库中保存的是它所生成代码的存储库。 我们从开发者社区收到了你的反馈要求我们启用/禁用将最新提交消息追加到每个管道运行的标题。

在此更新中,我们添加了一个名为 appendCommitMessageToRunName的新 YAML 属性,可用于执行此操作。 默认情况下, 属性设置为 true。 将其设置为 false时,管道运行将仅显示 BuildNumber

使用内部版本号的管道运行示例

使用最后一个提交消息运行的管道示例

Pipelines Runs Rest API 中消耗的资源和模板参数

扩展 的管道运行 REST API 现在返回管道运行使用的更多类型的项目以及用于触发该运行的参数。 我们增强了 API, container 以返回 管道运行中使用的 和 pipeline 资源和模板参数。 例如,现在可以编写符合性检查来评估管道使用的存储库、容器和其他管道运行。

下面是新响应正文的示例。

"resources":
{
    "repositories":
    {
        "self":
        {
            "repository":
            {
                "id": "e5c55144-277b-49e3-9905-2dc162e3f663",
                "type": "azureReposGit"
            },
            "refName": "refs/heads/main",
            "version": "44153346ecdbbf66c68c20fadf27f53ea1394db7"
        },
        "MyFirstProject":
        {
            "repository":
            {
                "id": "e5c55144-277b-49e3-9905-2dc162e3f663",
                "type": "azureReposGit"
            },
            "refName": "refs/heads/main",
            "version": "44153346ecdbbf66c68c20fadf27f53ea1394db7"
        }
    },
    "pipelines":
    {
        "SourcePipelineResource":
        {
            "pipeline":
            {
                "url": "https://dev.azure.com/fabrikam/20317ad0-ae49-4588-ae92-6263028b4d83/_apis/pipelines/51?revision=3",
                "id": 51,
                "revision": 3,
                "name": "SourcePipeline",
                "folder": "\\source"
            },
            "version": "20220801.1"
        }
    },
    "containers":
    {
        "windowscontainer":
        {
            "container":
            {
                "environment":
                {
                    "Test": "test"
                },
                "mapDockerSocket": false,
                "image": "mcr.microsoft.com/windows/servercore:ltsc2019",
                "options": "-e 'another_test=tst'",
                "volumes":
                [
                    "C:\\Users\\fabrikamuser\\mount-fabrikam:c:\\mount-fabrikam"
                ],
                "ports":
                [
                    "8080:80",
                    "6379"
                ]
            }
        }
    }
},
"templateParameters":
{
    "includeTemplateSteps": "True"
}

在 YAML 模板表达式中添加对字符串拆分函数的支持

YAML 管道提供了减少代码重复的便捷方法,例如 循环访问 each 对象的列表 或属性的值。

有时,要循环访问的项集表示为字符串。 例如,当要部署到的环境列表由字符串 integration1, integration2定义时。

当我们从开发者社区听取你的反馈时,我们听说你想要 YAML 模板表达式中的字符串split函数。

现在,可以 split 创建一个字符串并循环访问 each 其子字符串。

variables:
  environments: integration1, integration2

jobs:
  - job: Deploy
    steps:
    - ${{ each env in split(variables.environments, ', ') }}:
      - script: ./deploy.sh -e ${{ env }}
      - script: ./runTest.sh -e ${{ env }}

获取 Git 存储库时不同步标记

签出任务使用--tags选项提取 Git 存储库的内容。 这会导致服务器提取所有标记以及这些标记所指向的所有对象。 这会增加在管道中运行任务的时间 - 尤其是在具有大量标记的大型存储库时。 此外,即使启用浅层提取选项,签出任务也会同步标记,因此可能会破坏其用途。 为了减少从 Git 存储库提取或拉取的数据量,我们现在向任务添加了一个新选项,用于控制同步标记的行为。 此选项在经典管道和 YAML 管道中都可用。

可以从 YAML 文件或 UI 控制此行为。

若要选择不通过 YAML 文件同步标记,请将 添加到 fetchTags: false 签出步骤。 fetchTags如果未指定 选项,则与使用 时相同fetchTags: true

steps:
- checkout: self  # self represents the repo where the initial Pipelines YAML file was found
  clean: boolean  # whether to fetch clean each time
  fetchTags: boolean # whether to sync the tags
  fetchDepth: number  # the depth of commits to ask Git to fetch
  lfs: boolean  # whether to download Git-LFS files
  submodules: boolean | recursive  # set to 'true' for a single level of submodules or 'recursive' to get submodules of submodules
  path: string  # path to check out source code, relative to the agent's build directory (e.g. \_work\1)
  persistCredentials: boolean  # set to 'true' to leave the OAuth token in the Git config after the initial fetch

如果要更改现有 YAML 管道的行为,在 UI 中设置此选项可能更方便,而不是更新 YAML 文件。 若要导航到 UI,请打开管道的 YAML 编辑器,依次选择“触发器”、“处理”和“签出”步骤。

如果在 YAML 文件和 UI 中指定此设置,则 YAML 文件中指定的值优先。

对于 (YAML 或经典) 创建的所有新管道,默认情况下仍会同步标记。 此选项不会更改现有管道的行为。 除非如上所述显式更改选项,否则标记仍将在这些管道中同步。

更新了 Ubuntu 18.04 映像的棕发计划

Azure Pipelines 正在弃用托管池上的 Ubuntu 18.04 映像 (ubuntu-18.04) 。 此映像将于 12 月 1 日停用。 你可能会开始看到更长的队列时间。

为了帮助你更好地确定哪些管道正在使用 ubuntu-18.04 图像,我们正计划进行棕发。 作业将在停工期间失败。

  • 使用 ubuntu-18.04 图像在管道运行时显示警告消息
  • 脚本可用于帮助你使用已弃用的映像(包括 ubuntu-18.04)查找管道
  • 我们正在安排简短的“棕褐色”。 任何 ubuntu-18.04 运行都将在棕褐色期间失败。 因此,建议在停电前迁移管道。

已更新) (Brownout 计划

  • UTC 10 月 3 日 12:00 - UTC 10 月 3 日 14:00
  • UTC 时间 10 月 18 日 14:00 - 10 月 18 日 UTC 16:00
  • UTC 时间 11 月 15 日 18:00 - 11 月 15 日 20:00 UTC
  • UTC 时间 11 月 30 日 20:00 - 11 月 30 日 22:00 UTC
  • UTC 时间 12 月 15 日 20:00 - 12 月 16 日 00:00 UTC
  • UTC 时间 1 月 5 日 10.00 - UTC 1 月 5 日 14:00
  • UTC 1 月 13 日 12:00 - UTC 1 月 13 日 16:00 UTC
  • UTC 时间 1 月 18 日,14:00 - 1 月 18 日,UTC 18:00
  • UTC 时间 1 月 24 日 16:00 - UTC 1 月 24 日 20:00
  • UTC 时间 2 月 1 日 18:00 - UTC 2 月 1 日 22:00
  • UTC 时间 2 月 7 日 16:00 - UTC 2 月 7 日 22:00
  • UTC 时间 2 月 13 日 14:00 - UTC 2 月 13 日 22:00
  • UTC 时间 2 月 21 日 10:00 - UTC 2 月 21 日 22:00
  • UTC 时间 2 月 28 日 10:00 - 2 月 28 日 22:00 UTC
  • UTC 3 月 6 日,00.00 - UTC 3 月 7 日 00.00 UTC
  • UTC 时间 3 月 13 日,00.00 - UTC 3 月 14 日 00.00 UTC
  • UTC 时间 3 月 21 日 00.00 - UTC 3 月 22 日 00.00 UTC

后续步骤

注意

这些功能将在未来两到三周内推出。

前往 Azure DevOps 并了解一下。

如何提供反馈

我们很想听听你对这些功能的看法。 使用帮助菜单报告问题或提供建议。

提出建议

你还可以在 Stack Overflow 上获取社区的建议和问题解答。

此致

亚伦·霍尔伯格