Azure Artifacts 最佳做法

Azure DevOps Services |Azure DevOps Server |Azure DevOps Server 2022

Azure Artifacts为团队提供一个发布、存储、共享和使用包的位置。 随着源、包和使用者数量的增长,一些早期决策可以使包管理变得简单或更难维护。 本文汇总了一些实践,可帮助你保持包还原过程的可预测性,以更强的控制力发布包,并在长期内更轻松地管理包源。

核心指南

  • 在每个客户端配置文件中使用一个源,并在需要公共注册表或其他内部源时在该源上启用上游源。 这种方法可让配置文件保持简洁,并有助于你的软件包源提供更可预测的还原行为。 有关详细信息,请参阅 什么是上游源?

  • 将源视图视为发布通道。 将新版本发布到 @local,在那里进行验证,然后将已准备好供更广泛使用的版本提升到 @prerelease@release。 此方法可帮助你将仍在评估的包版本与准备与更多使用者共享的版本分开。 有关详细信息,请参阅 什么是源视图?

  • 请谨慎配置订阅源权限。 确定谁可以发布包、谁可以从上游源保存包,以及谁可以从共享视图中使用包。 明确的角色边界有助于保护信息流并减少误修改。 有关详细信息,请参阅 源角色和权限

  • 在旧包版本开始累积之前启用保留策略。 旧版本会迅速累积,尤其是在活跃的订阅源中。 保留策略有助于控制存储增长,并减少保持源可管理所需的工作量。 有关详细信息,请参阅 使用保留策略自动删除包

包发布者最佳实践指南

遵循最佳做法有助于确保一致性、安全性和流畅的用户体验。 下面是使用 Azure Artifacts 发布包时的主要建议:

注意

必须是源发布者(参与者)或更高级别才能将包发布到源。 有关更多详细信息,请参阅 源角色和权限

  • 每个存储库使用单个源

    源是一种可托管多种类型包的组织单元。 虽然项目可以使用多个源,但通常最好将存储库连接到一个主源,以减少冲突并简化包管理。 如果需要来自其他源或公共注册表的包,请使用上游源,而不是将多个源直接添加到每个客户端配置。

  • 自动发布新创建的包

    自动发布新包有助于确保最新版本可供团队或目标使用者使用,而无需手动干预。 发布包时,Azure Artifacts 会将其添加到你的源的 @local 视图中。 有关更多详细信息,请参阅什么是源视图?

  • 启用保留策略以自动清理旧包版本

    随着时间的推移,旧包版本可以累积、消耗存储,并使源难以管理。 保留策略可让你自动删除较旧的包版本,同时保留指定数量的最新版本。 此过程有助于控制存储增长,并使源更易于维护。 有关更多详细信息,请参阅 使用保留策略自动删除包

  • 使用源视图发布包

    源视图可让你与用户共享部分包版本。 例如,您可以先将软件包提升到 @prerelease,供早期采用者使用;然后在它准备好供更广泛的用户使用时,再将其提升到 @release。 提升到视图中的包不受保留策略约束。 有关更多详细信息,请参阅什么是源视图?

  • 确保视图具有适当的访问权限

    如果你的包供外部团队使用或在不同组织之间使用,请确保 @release@prerelease 视图具有适当的可见性设置。 有关详细信息,请参阅 信息流视图设置

包使用者的最佳做法

使用包时,应确保还原过程可预测,并明确包的来源。

  • 在客户端配置中使用单个源

    为了帮助源提供确定性的还原,请确保客户端配置仅引用启用了上游源的一个源。 此方法使配置文件更简单,并减少意外的包解析结果的可能性。 有关详细信息,请参阅 什么是上游源?

  • 对外部包使用上游源

    如果使用来自外部源或公共注册表(如 NuGet.orgnpmjs.com)的包,请使用上游源,而不是将这些源单独添加到每个客户端配置。 此方法为团队提供了一种一致的方式来通过同一源还原内部和外部依赖项。 有关详细信息,请参阅 什么是上游源?设置上游源

    注意

    必须是源和上游读取者(协作者)或更高级别,才能保存来自上游源的包。 有关更多详细信息,请参阅 源角色和权限

  • 有意地对上游源进行排序

    此源会按顺序检查上游源,并从第一个包含该程序包的源中返回该程序包。 如果使用多个上游源,请按顺序排列它们,以便源包源(feed)从你预期的源中解析包。 当混合使用公共注册表和内部源时,或者组织内部重新发布自定义的开源包时,此排序最重要。 有关更多信息,请参阅 有意排序上游源搜索顺序

  • 使用源视图控制使用者看到的内容

    如果您的团队通过源视图提升已验证的软件包版本,请使用这些视图仅共享面向特定受众的软件包版本。 例如,您可以将新发布的包保留在 @local 中,通过 @prerelease 共享预览版本,并通过 @release 共享已批准的包。

  • 对同一租户中的跨组织源使用源定位符

    如果这些源位于同一 Microsoft Entra 租户中,但不属于你的组织,请使用源定位器。 语法为 azure-feed://<organization>/<projectName>/<feed>@<view>