Examinar exibições de lançamento
Ao criar pacotes de um pipeline, o pacote precisa ter uma versão antes de ser consumido e testado.
Somente após o teste é a qualidade do pacote conhecido.
Como as versões do pacote não podem e não devem ser alteradas, torna-se desafiador escolher uma versão específica com antecedência.
Níveis de qualidade e visualizações
O Azure Artifacts reconhece o nível de qualidade dos pacotes em seus feeds e a diferença entre versões de pré-lançamento e lançamento.
Ele oferece diferentes modos de exibição na lista de pacotes e suas versões, separando-os com base em seu nível de qualidade.
O desafio:
- Versão primeiro: o pacote deve ter uma versão definida antes do teste.
- Qualidade desconhecida: A qualidade é determinada após o teste.
- Imutabilidade: Não é possível alterar a versão após a publicação.
- Solução: Use exibições para indicar a qualidade sem alterar a versão.
Exibições como descritores de qualidade
Ele se encaixa bem com o uso de versionamento semântico dos pacotes, permitindo prever a intenção de uma versão específica.
Ainda assim, seus metadados extras do feed do Azure Artifacts são chamados de descritor.
Os modos de exibição fornecem:
- Indicador de qualidade: Separar pacotes por nível de maturidade.
- Escolha do consumidor: Permitir que os consumidores escolham o nível de qualidade.
- Fluxo de trabalho de promoção: mover pacotes por meio de gates de qualidade.
- A Imutabilidade foi mantida: A versão do pacote não é alterada.
Visões padrão do feed
Os feeds no Azure Artifacts têm três exibições diferentes por padrão. Essas exibições são adicionadas quando um novo feed é criado.
As três exibições padrão
1. exibição @Local
A exibição @Local contém todos os pacotes de lançamento e pré-lançamento e os pacotes baixados de fontes upstream.
Características:
- Feed completo: Mostra todos os pacotes, independentemente do status de promoção.
- Pacotes upstream: Inclui pacotes armazenados em cache de fontes upstream.
- Modo de exibição padrão: Usado por padrão quando nenhuma exibição é especificada.
- Uso de desenvolvimento: Normalmente usado durante o desenvolvimento.
Casos de uso:
- Compilações de desenvolvimento: desenvolvedores testando os pacotes mais recentes.
- Compilações de CI: pipelines de build que precisam de todas as versões de pacotes.
- Descoberta de pacote: Localizando todos os pacotes disponíveis.
2. @Prerelease exibição
A exibição @Prerelease contém todos os pacotes que têm um rótulo no número da versão.
Características:
-
Somente versões rotuladas: Mostra apenas versões com rótulos de pré-lançamento (por exemplo,
1.0.0-beta). - Portão de qualidade: Os pacotes promovidos aqui passaram por verificações de qualidade iniciais.
- Fase de teste: Indica pacotes prontos para testes mais amplos.
- Não pronto para produção: Não recomendado para uso em produção.
Casos de uso:
- Teste de QUALIDADE: Equipes de garantia de qualidade testando versões de pré-lançamento.
- Teste beta: Adotadores iniciais testando novos recursos.
- Teste de integração: Testar a integração com outros sistemas.
3. Exibição @Release
A exibição @Release contém todos os pacotes considerados lançamentos oficiais.
Características:
- Pronto para produção: Contém apenas pacotes aprovados para produção.
- Sem rótulos: Normalmente, contém apenas versões sem rótulos de pré-lançamento.
- Versões estáveis: Nível de qualidade mais alto.
- Suportado: Os pacotes nessa exibição têm suporte oficial.
Casos de uso:
- Implantações de produção: Aplicativos implantados em produção.
- Compilações estáveis: compilações de lançamento para clientes.
- Versões oficiais: Pacotes distribuídos para usuários finais.
Usando exibições
Você pode usar exibições para ajudar os consumidores de um feed de pacotes a filtrar entre versões lançadas e não lançadas de pacotes.
Essencialmente, permite que um consumidor tome uma decisão consciente de escolher entre pacotes liberados ou aceitar pré-lançamentos de um determinado nível de qualidade.
Formato de URI de exibição padrão
Por padrão, o modo de exibição@Local é usado para oferecer a lista de pacotes disponíveis. O formato desse URI é:
https://pkgs.dev.azure.com/{organization}/_packaging/{feedname}/nuget/v3/index.json
Componentes:
- {organization}: O nome da sua organização do Azure DevOps.
- {feedname}: O nome do feed.
- Nenhuma exibição especificada: O padrão é exibir @Local .
Example:
https://pkgs.dev.azure.com/contoso/_packaging/MyFeed/nuget/v3/index.json
Formato de URI específico da visualização
Ao consumir um feed de pacotes pelo URI do ponto de extremidade, o endereço pode incluir a exibição solicitada. Para uma exibição específica, o URI inclui o nome da exibição, que muda para:
https://pkgs.dev.azure.com/{organization}/_packaging/{feedname}@{Viewname}/nuget/v3/index.json
Exemplos específicos da exibição:
# @Local view (explicit)
https://pkgs.dev.azure.com/contoso/_packaging/MyFeed@Local/nuget/v3/index.json
# @Prerelease view
https://pkgs.dev.azure.com/contoso/_packaging/MyFeed@Prerelease/nuget/v3/index.json
# @Release view
https://pkgs.dev.azure.com/contoso/_packaging/MyFeed@Release/nuget/v3/index.json
Filtragem automática de exibição
As ferramentas de desenvolvimento mostrarão e usarão automaticamente os pacotes da visão especificada.
Comportamento do gerenciador de pacotes:
- Filtragem de exibição: Somente os pacotes no modo de exibição especificado são visíveis.
- Resolução automática: A resolução de dependência usa apenas pacotes visíveis.
- Transparente: Nenhuma configuração adicional é necessária.
Exibições entre tipos de pacote
As exibições funcionam consistentemente em todos os tipos de pacote:
NuGet
# Default (Local)
https://pkgs.dev.azure.com/contoso/_packaging/MyFeed/nuget/v3/index.json
# Release view
https://pkgs.dev.azure.com/contoso/_packaging/MyFeed@Release/nuget/v3/index.json
npm
# Default (Local)
https://pkgs.dev.azure.com/contoso/_packaging/MyFeed/npm/registry/
# Release view
https://pkgs.dev.azure.com/contoso/_packaging/MyFeed@Release/npm/registry/
Maven
# Default (Local)
https://pkgs.dev.azure.com/contoso/_packaging/MyFeed/maven/v1
# Release view
https://pkgs.dev.azure.com/contoso/_packaging/MyFeed@Release/maven/v1
Python
# Default (Local)
https://pkgs.dev.azure.com/contoso/_packaging/MyFeed/pypi/simple/
# Release view
https://pkgs.dev.azure.com/contoso/_packaging/MyFeed@Release/pypi/simple/
Rótulo de pré-lançamento versus visualização
As ferramentas podem oferecer uma opção para selecionar versões de pré-lançamento, como mostrado nesta caixa de diálogo NuGet do Visual Studio 2017.
Distinção importante:
Ele não se relaciona nem se refere à exibição @Prerelease de um feed. Em vez disso, ele depende da presença de rótulos de pré-lançamento do controle de versão semântico para incluir ou excluir pacotes nos resultados da pesquisa.
Dois conceitos separados:
Rótulos de pré-lançamento (SemVer)
-
Baseado em versão: Parte do número da versão (por exemplo,
1.0.0-beta). - Controle de versão semântico: Segue as convenções do SemVer.
- Recurso do gerenciador de pacotes: Os gerenciadores de pacotes podem filtrar com base em rótulos.
- Universal: Funciona em todos os sistemas de pacotes.
Example:
1.0.0-alpha.1 ← Prerelease label
1.0.0 ← Stable version
Exibição @Prerelease (Azure Artifacts)
- Metadados de feed: Indicador de qualidade específico do Azure Artifacts.
- Baseado em promoção: pacotes promovidos para essa exibição.
- Portão de qualidade: Indica um determinado nível de qualidade.
- Específico do Azure: Aplica-se somente aos feeds do Azure Artifacts.
Como eles trabalham juntos:
- Complementares: Ambas ajudam a gerenciar a qualidade de pacotes.
- Independente: um pacote pode ter um rótulo, mas não estar na exibição @Prerelease.
- Fluxo de trabalho: normalmente, as versões rotuladas são promovidas para a exibição @Prerelease.
Configurando clientes de pacotes
Configuração de desenvolvimento
Use o modo @Local de exibição para desenvolvimento ativo:
# NuGet - Add source with Local view
dotnet nuget add source "https://pkgs.dev.azure.com/contoso/_packaging/MyFeed/nuget/v3/index.json" --name MyFeed-Local
# npm - Configure in .npmrc
registry=https://pkgs.dev.azure.com/contoso/_packaging/MyFeed/npm/registry/
Configuração de QA/Teste
Use o modo @Prerelease de exibição para teste:
# NuGet - Add source with Prerelease view
dotnet nuget add source "https://pkgs.dev.azure.com/contoso/_packaging/MyFeed@Prerelease/nuget/v3/index.json" --name MyFeed-Prerelease
Configuração de produção
Usar a exibição @Release para produção:
# NuGet - Add source with Release view
dotnet nuget add source "https://pkgs.dev.azure.com/contoso/_packaging/MyFeed@Release/nuget/v3/index.json" --name MyFeed-Release
# npm - Configure in .npmrc for production
registry=https://pkgs.dev.azure.com/contoso/_packaging/MyFeed@Release/npm/registry/
Visões personalizadas
Além das três exibições padrão, você pode criar exibições personalizadas para níveis de qualidade mais refinados.
Exemplos de exibição personalizados:
- @Alpha: Versões muito antigas.
- @Beta: Versões de teste completas do recurso.
- @RC: versões release candidate.
- @Stable: Versões estáveis de longo prazo.
Criando exibições personalizadas:
- Navegue até as configurações de feed: Vá para o feed no Azure Artifacts.
- Guia Exibições: Selecione a aba Exibições.
- Adicionar exibição: Selecione "Adicionar exibição" e forneça um nome.
- Configurar: Defina regras de visibilidade e promoção.
Exibir benefícios
Controle de qualidade:
- Lançamentos em etapas: mover pacotes por meio de gates de qualidade.
- Mitigação de risco: Impedir pacotes não testados na produção.
- Comunicação clara: As exibições indicam o nível de qualidade.
Flexibilidade do consumidor:
- Escolha: Os consumidores escolhem sua tolerância a riscos.
- Aceitação: Opte conscientemente por versões de pré-lançamento.
- Segurança: Os sistemas de produção veem apenas os pacotes liberados.
Integração de fluxo de trabalho:
- CI/CD: Integre a promoção em pipelines.
- Automação: Automatize a promoção com base nos resultados do teste.
- Governança: Imponha barreiras de qualidade por meio de visões.
Confira também: