Azure Artifacts 简化了与其他服务的集成

通过此更新,我们可以更轻松地使用其他常用包管理器对 Azure Artifacts 进行身份验证。 在下面查找有关实际实现的更多详细信息。

功能

Azure Boards

Azure Pipelines

Azure Artifacts

Azure Boards

向任务板和冲刺 (sprint) 积压工作 (backlog) 添加“父工作项”筛选器

我们向冲刺 (sprint) 板和冲刺 (sprint) 积压工作 (backlog) 添加了新的筛选器。 这允许你按父项筛选需求级别积压工作项(左侧的第一列)。 例如,在下面的屏幕截图中,我们已筛选视图,仅显示父级为“我的大功能”的用户情景。

Add Parent Work Item filter.

改进错误处理体验 - Bug/任务上的必填字段

以前,在看板中,如果你将工作项从一列移到状态更改触发了字段规则的另一列,则该卡只会显示红色错误消息,这将迫使你打开工作项以了解根本原因。 在冲刺 (sprint) 170 中,我们改进了体验,因此你现在可以通过单击红色错误消息查看错误的详细信息,而无需打开工作项本身。

Select error message to see details.

Azure Pipelines

规模集代理的预览版

我们正在预览名为规模集代理的新功能,它将 Microsoft 托管代理的便利性和弹性容量与自承载代理的控制与灵活性配对。 通过此预览版,我们现在可在 Azure 订阅中管理规范代理(完全自动化)。 在以下情况下,你可能需要考虑使用规模集代理,而不使用 Microsoft 托管的代理或自托管代理:

  • 需要比本机 Microsoft 托管代理中提供的内存、更多的处理器、更多的存储或更多的 I/O
  • 不希望允许列出企业防火墙中的大量 IP 地址,使 Microsoft 托管的代理能够与服务器通信
  • 需要比我们可以提供的更多 Microsoft 托管代理来满足你的大规模需求
  • 需要能够将 Microsoft 托管的并行作业分区到组织中的单个项目或团队
  • 不想全天候运行专用代理,而是想要取消预配未主动使用的代理计算机

若要使用规模集代理,首先需要在 Azure 订阅中创建 VM 规模集,然后在 Azure Pipelines 中创建一个代理池,使其指向该规模集。 Azure Pipelines 将根据你希望一直维护的挂起作业数和空闲计算机数自动缩放此池。 Azure Pipelines 还将在这些虚拟机上安装代理。 有关详细信息,请参阅规模集代理。 预览功能时,请在文档页上包括你的反馈

适用于 Azure Pipelines 托管池的 Ubuntu 20.04 预览版

Ubuntu 20.04 映像现在以预览版提供 Azure Pipelines 托管池。 若要使用此映像,请更新 YAML 文件以包括 vmImage:“ubuntu-20.04”。 请注意,ubuntu 最新映像标签将继续指向 ubuntu-18.04,直到今年晚些时候 ubuntu-20.04 预览版推出。

请注意,由于 ubuntu 20.04 映像处于预览状态,因此它目前不支持 ubuntu-18.04 中提供的所有工具。 了解详细信息

支持 YAML 管道中的 GitHub 包

我们最近引入了一种称为 的新资源类型,该类型添加了支持,用于 将 GitHub 中的 NuGetnpm 包用作 YAML 管道中的资源。 现在,使用此资源时,可以指定要使用的 GitHub 包的类型(NuGet 或 npm)。 还可以在发布新包版本时启用自动管道触发器。 目前,该支持仅适用于使用 GitHub 的包,但接下来,我们计划将该支持扩展到来自其他包存储库(如 NuGetnpmAzureArtifacts 等)的包的使用。 详见下例:

resources:
  packages:
    - package: myPackageAlias # alias for the package resource
      type: Npm # type of the package NuGet/npm
      connection: GitHubConn # GitHub service connection of type PAT
      name: nugetTest/nodeapp # <Repository>/<Name of the package>
      version: 1.0.9 # Version of the package to consume; Optional; Defaults to latest
      trigger: true # To enable automated triggers (true/false); Optional; Defaults to no triggers

注意:目前,GitHub 包仅支持基于 PAT 的身份验证,这意味着包资源中的 GitHub 服务连接应为 PAT 类型。 此限制解除后,我们将为其他类型的身份验证提供支持。

默认情况下,不会在作业中自动下载包,因此,我们 引入了 getPackage 宏,允许你使用资源中定义的包。 详见下例:

- job: job1
  pool: default
  steps:
    - getPackage: myPackageAlias # Alias of the package resource

Azure Artifacts

对已禁用的上游源的通知

现在,当一个或多个源的上游源无法正常运行时,Azure Artifacts Web 界面会通知你。 上游源使你能够将源(源 A)指向另一个源(源 B),并允许源 A 的使用者从源 B 访问包,而无需直接连接到它。 有关上游源的详细信息,请参阅 Azure Artifacts 文档。 如果上游源在源上被禁用,则上游源可能无法正常工作,例如,如果源 B 以无提示方式删除,则客户将无法通过源 A 从中提取包。过去,这种情况可能发生时没有警告,并导致难以诊断的操作问题,例如由于缺少依赖项(即来自上述示例中源 B 的包)突然生成中断。 现在,当源的任何上游源出现问题时,Azure Artifacts 会向你发出警告。 当出现问题时,Azure Artifacts 源详细信息页中会显示一个横幅(下面红色箭头)。

Red arrow in the Azure Artifacts feed detail page.

单击横幅中的链接将打开一个页面,其中显示了源的每个上游的状态。 除了有关当前源的每个上游源的信息外,还可以在“上次同步”列下看到当前状态。 正常运行的上游源将显示绿色检查标记,最后一次验证源的运行状况。 中断的上游源将显示红色 X 以及检查的时间。 挂起验证的上游源将显示蓝色信息图标。

Icons in the Last synced column.

单击中断上游源的最后一个同步时间时,对话框将打开共享有关问题的根本原因的更多详细信息(如果可用)。 例如,在下图中,问题上游源无法正常工作,因为目标源已删除。 该对话框还包含审核日志的链接,可帮助你了解谁最近进行了相关更改。 还可以使用指向权限设置和 Azure Artifacts 文档的链接来帮助调查根本原因。

Example showing the target feed was deleted.

许可证表达式和嵌入式许可证

现在,在 Visual Studio 中浏览包时,你可以查看存储在 Azure Artifacts 中的 NuGet 包的许可证信息的详细信息。 这适用于使用许可证表达式或嵌入式许可证表示的许可证。 现在,你可以在 Visual Studio 包详细信息页面中看到许可证信息的链接(下图中的红色箭头)。

Link to license information.

单击该链接将转到一个网页,你可以在其中查看许可证的详细信息。 许可证表达式和嵌入式许可证都具有相同的体验,因此你可以在一处查看存储在 Azure Artifacts 中的包的许可证详细信息(对于指定许可证信息并受 Visual Studio 支持的包)。

View license details.

轻量级身份验证任务

现在,你可以使用轻量级身份验证任务,通过 Azure Pipelines 对常用的包管理器进行身份验证。 常用的包管理器包括 NuGet、npm、PIP、Twine 和 Maven。 以前,你可以使用提供大量功能(包括发布和下载包的功能)的任务对这些包管理器进行身份验证。 但是,这需要对与包管理器进行交互的所有活动使用这些任务。 如果运行自己的脚本来执行发布或下载包等任务,则无法在管道中使用它们。 现在,你可以在管道 YAML 中使用自己设计的脚本,并使用这些新的轻量级任务执行身份验证。 使用 npm 的示例:

img

此图中的“ci”和“publish”命令可供任意使用,你可以使用 Azure Pipelines YAML 支持的任何命令。 这使你可以完全控制命令调用,并可以轻松地在管道配置中使用共享脚本。 有关详细信息,请参阅 NuGetnpmPIPTwineMaven 身份验证任务文档。

后续步骤

注意

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

前往 Azure DevOps 并了解一下。

如何提供反馈

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

Make a suggestion

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

此致

亚伦·霍尔伯格