生成Azure开发人员 CLI (azd) 扩展后,打包并将其发布到注册表,以便其他人可以安装它。 本文介绍如何发布 构建示例扩展快速入门中的 Contoso 资源标记器示例扩展。 可以将相同的步骤应用于任何扩展。
Note
扩展 azd 框架已正式发布。 单个扩展或功能可能具有自己的预览状态。
选择注册表
azd 可以从官方注册表、基于 URL 的自定义注册表清单、基于文件的注册表清单和可移植捆绑文件解析扩展。 选择与用户如何安装扩展相匹配的分发方法:
-
官方注册表:随
azd一同提供的注册表。 若要在此处发布内容,请向 azure/azure-dev 存储库的派生仓库提交拉取请求。 - 基于 URL 的自定义注册表:团队托管用于公共或专用分发的远程注册表清单。
- 基于文件的注册表:用于开发、测试、脱机使用或专用分发的本地注册表清单。
- 开发或夜间注册表:选择加入注册表进行工作或自动生成第一方扩展。 开发注册表中的扩展是未签名的,Azure 支持未涵盖,可以更改或删除,而无需通知。
-
可移植捆绑包:用户直接从本地路径或 HTTPS URL 安装而无需添加注册表源的自包含
.zip包。
本文使用开发注册表演示发布到共享测试源。 有关源和版本解析的详细信息,请参阅 扩展框架参考。
先决条件
- 来自 《构建示例扩展》快速入门 的已完成扩展。
-
azd开发者扩展(microsoft.azd.extensions),提供用于打包和发布的azd x命令。 如果你已完成快速入门,那么它已经安装好了。 否则,请运行azd extension install microsoft.azd.extensions。 - 一个 GitHub 账户和一个用于托管发布产物的仓库。
- 具有
repo作用域的GitHub个人访问令牌(PAT)。 发布命令使用此令牌创建GitHub发布和上传项目。 有关详细信息,请参阅 管理个人访问令牌。
更新版本和更改日志
发布之前,请更新版本并记录所做的更改:
更新
version中的extension.yaml属性,遵循 语义化版本控制。 根据更改类型递增主版本号、次版本号或补丁版本号。更新
CHANGELOG.md,以反映此版本中的重大更改。azd使用 changelog 生成发行说明。
打包扩展
azd x pack使用命令生成特定于平台的二进制文件并打包扩展:
azd x pack
该命令为输出目录中每个受支持的平台创建项目。
azd x release 上传这些项目并 azd x publish 更新注册表元数据。 打包还会运行快照测试,以验证扩展在发布之前的行为是否按预期方式运行。
如果要直接分发扩展,而不是通过注册表发布扩展,请创建包含的 azd x pack --bundle自包含捆绑包。 捆绑包是可移植 .zip 的,其中包含从文件路径或 HTTPS URL 安装所需的注册表元数据和项目。
发布扩展程序
使用 azd x release 命令来创建 GitHub 发布版本并上传已打包的构件。 提供GitHub PAT,以便命令可以创建发布:
azd x release
该命令在GitHub存储库中创建发布,上传打包的二进制文件,并从更改日志生成发行说明。 基于注册表的发布使用这些发布项目作为可下载的扩展包。 除非你想要在GitHub中托管捆绑包,否则直接捆绑包分发不需要执行此发布步骤。
Tip
将GitHub PAT 存储在环境变量中,而不是在命令行上传递。 通过运行 azd x release --help 查看命令帮助,了解支持的身份验证选项。
发布到注册表
azd x publish使用命令在扩展注册表中添加或更新扩展的条目:
azd x publish
该命令更新注册表元数据,以便用户可以从开发注册表发现和安装扩展。 此步骤不同于在快速入门中由 azd x init 执行的本地发布,后者仅将该扩展注册到您的计算机上的本地源。 运行 azd x publish 更新共享开发注册表,以便其他用户可以安装扩展。
安装和验证
发布后,请验证其他人是否可以从开发注册表安装扩展:
请确保已添加开发注册表。
azd extension source add -n dev -t url -l "https://aka.ms/azd/extensions/registry/dev"按其 ID 安装扩展。
azd extension install contoso.azd.tagger运行命令以确认扩展正常工作。
azd tagger show
发布到官方注册表
若要发布到官方注册表,请将扩展提交到 azure/azure 开发存储库:
- 分叉azure/azure开发存储库。
- 将扩展的注册表项添加到分支中的官方注册表文件中。
- 提交拉取请求以供审阅。
Azure开发人员 CLI 团队在合并之前会审查官方注册表提交的质量和安全性。
排查发布问题
下表列出了常见的发布问题及其解决方法:
| Issue | 解决方案 |
|---|---|
| 发布失败并出现身份验证错误 | 验证GitHub PAT 是否有效,并具有repo范围。 |
快照测试在 azd x pack 期间失败 |
查看测试输出,更新快照(如果预期发生更改)并重新运行该命令。 |
| 用户找不到你的扩展 | 确认已添加开发注册表,并且 azd x publish 已成功完成。 |
| 发布期间的版本冲突 | 将 version 中的 extension.yaml 递增到一个新的、未使用的版本。 |