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

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

Features

Azure Boards

Azure Pipelines

Azure Artifacts

Azure Boards

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

我们在 Sprint 看板和待办事项中添加了一个新筛选器。 这样,你可以按父项筛选需求级别积压工作项(左侧第一列)。 例如,在下面的屏幕截图中,我们已将视图筛选为仅显示父项为“我的大功能”的用户故事。

添加父工作项筛选器。

改进错误处理体验 - 关于 Bug/任务的必需字段

从看板的历史来看,当您将工作项从一个列移动到另一个状态更改会触发字段规则的列时,卡片只会显示一个红色错误消息,这迫使您打开工作项以理解问题的根本原因。 在冲刺 170 中,我们改进了体验,因此现在可以单击红色错误消息以查看错误的详细信息,而无需打开工作项本身。

选择错误消息以查看详细信息。

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 源详细信息页中会显示一个横幅(下面红色箭头)。

Azure Artifacts 源详细信息页中的红色箭头。

单击横幅中的链接将打开一个页面,该页面显示了您的订阅源中每个上游源的状态。 在查看当前数据流的同时,除了可以获取每个上游源的信息,还可以在“上次同步”列下看到其当前状态。 正常运行的上游源将显示绿色复选标记,同时显示上一次源健康状况验证的时间。 中断的上游源将显示红色 X 以及检查时间。 待验证的上游来源将显示一个蓝色信息图标。

“上次同步”列中的图标。

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

目标源被删除的示例。

许可证表示形式和嵌入式许可证

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

指向许可证信息的链接。

单击链接将带你访问网页,可在其中查看许可证的详细信息。 对于许可证表达式和嵌入式许可证,此体验相同,因此可以在一个位置查看存储在 Azure Artifacts 中的包的许可证详细信息(对于指定许可证信息和 Visual Studio 支持的包)。

查看许可证详细信息。

轻量级身份验证任务

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

img

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

后续步骤

注释

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

请去 Azure DevOps 上看看。

如何提供反馈

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

提出建议

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

谢谢

亚伦·霍尔伯格