Publicar uma extensão

Depois de criares uma extensão Azure Developer CLI (azd), empacote-a e publica-a num registo para que outros possam instalá-la. Este artigo mostra como publicar a extensão de exemplo Contoso Resource Tagger a partir do guia de início rápido Criar uma extensão de exemplo. Podes aplicar os mesmos passos a qualquer extensão.

Note

O azd framework de extensão está geralmente disponível. Extensões ou capacidades individuais podem ter o seu próprio estado de pré-visualização.

Escolha um registo

azd podem resolver extensões do registo oficial, manifestos personalizados baseados em URL, manifestos baseados em ficheiros e pacotes portáteis. Escolha a abordagem de distribuição que corresponda à forma como os utilizadores instalam a sua extensão:

  • Registo oficial: O registo que envia com azd. Para publicar aqui, envia um pull request para um fork do repositório azure/azure-dev.
  • Registo personalizado baseado em URL: Um manifesto de registo remoto que a sua equipa aloja para distribuição pública ou privada.
  • Registo baseado em ficheiros: Um manifesto local de registo para desenvolvimento, testes, uso offline ou distribuição privada.
  • Registo de desenvolvimento ou noturno: Um registo opt-in para extensões de trabalho em progresso ou construídas automaticamente. As extensões no registo de programadores não têm assinatura, não estão cobertas pelo suporte do Azure, e podem ser alteradas ou removidas sem aviso prévio.
  • Pacote portátil: Um pacote autónomo .zip que os utilizadores instalam diretamente a partir de um caminho local ou URL HTTPS, sem adicionar uma fonte de registo.

Este artigo utiliza o registo de desenvolvimento para demonstrar a publicação numa fonte de teste partilhada. Para detalhes de origem e resolução de versões, consulte a referência do framework de extensão.

Pré-requisitos

  • Uma extensão concluída do quickstart Build a sample extension.
  • A azd extensão de programador (microsoft.azd.extensions), que disponibiliza os azd x comandos utilizados para empacotar e publicar. Se completaste o quickstart, já está instalado. Caso contrário, execute azd extension install microsoft.azd.extensions.
  • Uma conta no GitHub e um repositório para armazenar os artefactos de lançamento.
  • Um token de acesso pessoal do GitHub (PAT) com o âmbito repo. O comando release usa este token para criar releases no GitHub e carregar artefactos. Para obter mais informações, consulte Gerenciando seus tokens de acesso pessoais.

Atualizar a versão e o registo de alterações

Antes de publicar, atualize a versão e documente as suas alterações:

  1. Atualize a propriedade version em extension.yaml, de acordo com o versionamento semântico. Incremente o número principal, menor ou de patch consoante o tipo de alteração.

  2. Atualização CHANGELOG.md com as alterações notáveis desta versão. azd Usa o changelog para gerar notas de lançamento.

Empacotar a extensão

Use o azd x pack comando para construir binários específicos da plataforma e empacotar a extensão:

azd x pack

O comando cria artefactos para cada plataforma suportada no seu diretório de saída. azd x release carrega estes artefactos e azd x publish atualiza os metadados do registo. A embalagem também executa testes snapshot para verificar se a extensão se comporta como esperado antes de publicar.

Se quiser distribuir uma extensão diretamente em vez de a publicar através de um registo, crie um bundle autónomo com azd x pack --bundle. O bundle é um portátil .zip que contém os metadados do registo e artefactos necessários para a instalação a partir de um caminho de ficheiro ou URL HTTPS.

Libertar a extensão

Utilize o comando azd x release para criar uma versão do GitHub e carregar os artefactos empacotados. Forneça o seu PAT do GitHub para que o comando possa criar a release:

azd x release

O comando cria uma release no teu repositório GitHub, carrega os binários empacotados e gera notas de release a partir do teu changelog. A publicação baseada em registos utiliza estes artefactos de lançamento como pacotes de extensão descarregáveis. A distribuição direta de bundles não requer esta etapa de lançamento, a menos que queira hospedar o bundle no GitHub.

Tip

Guarda o teu PAT do GitHub numa variável de ambiente em vez de o passar pela linha de comandos. Verifique a ajuda de comandos correndo azd x release --help para as opções de autenticação suportadas.

Publicar no registo

Use o azd x publish comando para adicionar ou atualizar a entrada da sua extensão no registo de extensões:

azd x publish

O comando atualiza os metadados do registo para que os utilizadores possam descobrir e instalar a sua extensão a partir do registo de desenvolvimento. Esta etapa difere da publicação local que azd x init executa no quickstart, que regista a extensão apenas para uma fonte local na sua máquina. A execução azd x publish atualiza o registo de desenvolvimento partilhado para que outros utilizadores possam instalar a sua extensão.

Instalar e verificar

Depois de publicar, verifique se outros podem instalar a sua extensão a partir do registo de desenvolvimento:

  1. Certifica-te de que já adicionaste o registo de desenvolvimento.

    azd extension source add -n dev -t url -l "https://aka.ms/azd/extensions/registry/dev"
    
  2. Instala a extensão pelo seu ID.

    azd extension install contoso.azd.tagger
    
  3. Executa um comando para confirmar que a extensão funciona.

    azd tagger show
    

Publicar no registo oficial

Para publicar no registo oficial, submeta a sua extensão ao repositório azure/azure-dev:

  1. Faz um fork no repositório azure/azure-dev.
  2. Adicione a entrada do registo da sua extensão ao ficheiro de registo oficial no seu fork.
  3. Envie um pull request para revisão.

A equipa do Azure Developer CLI analisa as submissões oficiais do registo quanto à qualidade e segurança antes da fusão.

Resolver problemas de publicação

A tabela seguinte lista as questões editoriais comuns e as suas resoluções:

Issue Resolução
O lançamento falha com um erro de autenticação Verifique se o seu PAT do GitHub é válido e inclui o âmbito repo.
Os testes de instantâneo falham durante azd x pack Revise o resultado do teste, atualize os seus snapshots se as alterações forem esperadas e execute novamente o comando.
Os utilizadores não conseguem encontrar a sua extensão Confirme que o registo de desenvolvimento foi adicionado e que azd x publish tenha sido concluído com êxito.
Conflito de versões durante a publicação Incremente o version em extension.yaml para uma nova versão ainda não utilizada.