Liberar pipelines e fontes de artefatos

Serviços de DevOps do Azure | Azure DevOps Server 2022 - Azure DevOps Server 2019

Com o Azure Pipelines, você pode implantar seus artefatos a partir de uma ampla variedade de fontes de artefatos e integrar seu fluxo de trabalho com diferentes tipos de repositórios de artefatos. As liberações podem ser vinculadas a várias fontes de artefatos, onde uma é designada como fonte primária.

Fontes de artefactos

O Azure Pipelines dá suporte a uma ampla gama de repositórios, ferramentas de controle de origem e sistemas de integração contínua.

Ao criar uma versão, você pode especificar a versão da origem do artefato. Por padrão, as versões usam a versão mais recente do artefato de origem. Você também pode optar por usar a compilação mais recente de uma ramificação específica especificando as tags, uma versão específica ou permitir que o usuário especifique a versão no momento da criação da versão.

Captura de tela mostrando como adicionar um artefato a um pipeline de liberação clássico.

Se você vincular mais de um artefato, poderá especificar qual deles é a fonte primária (padrão). A fonte de artefato primária é usada para definir um número de variáveis predefinidas. Ele também pode ser usado para nomear lançamentos.

Captura de tela mostrando como definir um artefato de origem primária.

Nota

Os Default version itens suspensos dependem do tipo de origem da definição de compilação vinculada.

  • As seguintes opções são suportadas por todos os tipos de repositório: Specify at the time of release creation, Specific versione Latest.

  • Latest from a specific branch with tags e Latest from the build pipeline default branch with tags as opções são suportadas pelos seguintes tipos de repositório: TfsGit, GitHub, Bitbuckete GitHubEnterprise.

  • Latest from the build pipeline default branch with tags não é suportado por XAML definições de compilação.

As seções a seguir descrevem como trabalhar com os diferentes tipos de fontes de artefatos.

Fontes de artefatos - Azure Pipelines

Você pode vincular um pipeline de liberação a qualquer compilação do Azure Pipelines. Você também pode vincular vários pipelines de compilação e especificar seus valores padrão e configurar gatilhos de implantação em várias fontes de compilação. Quando qualquer uma das compilações for concluída, ela acionará a criação de uma versão.

Os seguintes recursos estão disponíveis ao usar o Azure Pipelines como uma fonte de artefato:

Funcionalidade Description
Liberações de gatilho automático Novas versões podem ser criadas automaticamente quando um novo artefato de compilação está disponível (incluindo compilações XAML). Consulte Gatilhos de liberação para obter mais detalhes.
Variáveis de artefato Há suporte para várias variáveis de artefato nas fontes do Azure Pipelines.
Itens de trabalho e confirmações Você pode vincular itens de trabalho do Azure Pipelines e ele será exibido nos detalhes das versões. As confirmações são exibidas quando você usa controles de origem Git ou TFVC.
Download do artefato Por padrão, os artefatos de compilação são baixados para o agente que executa o pipeline. Você também pode configurar uma etapa em seu estágio para ignorar o download do artefato.
Etapas de implantação O resumo da compilação lista todos os estágios de implantação nos quais o artefato foi implantado.

Nota

Você deve incluir uma tarefa Publicar artefatos em seu pipeline de compilação. Para pipelines de construção YAML, um artefato com o nome drop é publicado implicitamente.

Por padrão, as liberações são executadas com um escopo de autorização de trabalho de nível de coleta. Isso significa que as versões podem acessar recursos em todos os projetos da organização (ou coleção para o Azure DevOps Server). Isso é útil ao vincular artefatos de construção de outros projetos. Você pode habilitar Limitar o escopo de autorização de trabalho ao projeto atual para pipelines de liberação nas configurações do projeto para restringir o acesso ao artefato de um projeto.

Para definir o escopo de autorização de trabalho para a organização:

  • Navegue até as configurações da sua organização.
  • Selecione Configurações em Pipelines.
  • Ative a opção Limitar o escopo de autorização de trabalho ao projeto atual para pipelines de liberação para limitar o escopo ao projeto atual. Esta é a configuração recomendada para uma boa medida de segurança.

Para definir o escopo de autorização de trabalho para um projeto específico:

  • Navegue até as configurações do projeto.
  • Selecione Configurações em Pipelines.
  • Ative a opção Limitar o escopo de autorização de trabalho ao projeto atual para pipelines de liberação para limitar o escopo ao projeto atual. Essa é a configuração recomendada, pois aumenta a segurança de seus pipelines.

Nota

Se o escopo estiver definido como projeto no nível da organização, não será possível alterar o escopo em cada projeto.

Todos os trabalhos em uma versão são executados com o escopo de autorização de trabalho definido como coleta. Em outras palavras, esses trabalhos têm acesso a recursos em todos os projetos da sua coleção de projetos.

Fontes de artefatos - controle de versão

Há alguns cenários em que você pode querer consumir artefatos de diferentes controles de origem diretamente sem passá-los por um pipeline de compilação. Por exemplo:

  • Desenvolver um PHP ou um aplicativo JavaScript que não requer um pipeline de compilação explícito.

  • Você gerencia configurações para vários estágios em diferentes repositórios de controle de versão e deseja consumir esses arquivos de configuração diretamente do controle de versão como parte do pipeline de implantação.

  • Você gerencia sua infraestrutura e configuração como código e deseja gerenciar esses arquivos em um repositório de controle de versão.

Como você pode configurar várias fontes de artefatos em um único pipeline de versão, você pode vincular um pipeline de compilação que produz os binários do seu aplicativo, bem como um repositório de controle de versão que armazena os arquivos de configuração no mesmo pipeline e usar os dois conjuntos de artefatos juntos durante a implantação.

O Azure Pipelines dá suporte a repositórios TFVC (Controle de Versão do Team Foundation), repositórios Git e repositórios GitHub.

Você pode vincular um pipeline de liberação a qualquer um dos repositórios Git ou TFVC em qualquer projeto de sua coleção (você precisará de acesso de leitura a esses repositórios). Nenhuma configuração adicional é necessária ao implantar artefatos de controle de versão na mesma coleção.

Quando você vincula um repositório GitHub e seleciona uma ramificação, pode editar as propriedades padrão dos tipos de artefato depois que o artefato for salvo. Isso é particularmente útil em cenários em que a ramificação para a versão estável do artefato muda, e as liberações de entrega contínua devem usar essa ramificação para obter versões mais recentes do artefato. Você também pode especificar detalhes do checkout, como se submódulos de check-out e arquivos rastreados pelo LFS e a profundidade de busca superficial.

Ao vincular uma ramificação TFVC, você pode especificar o conjunto de alterações a ser implantado ao criar uma versão.

Os seguintes recursos estão disponíveis ao usar TFVC, Git e GitHub como uma fonte de artefato:

Funcionalidade Description
Liberações de gatilho automático Novas versões podem ser criadas automaticamente quando um novo artefato de compilação está disponível (incluindo compilações XAML). Consulte Gatilhos de liberação para obter mais detalhes.
Variáveis de artefato Há suporte para várias variáveis de artefato nas fontes do Azure Pipelines.
Itens de trabalho e confirmações Você pode vincular os itens de trabalho do Azure Pipelines que serão exibidos nos detalhes das versões. As confirmações são exibidas quando você usa controles de origem Git ou TFVC.
Download do artefato Por padrão, os artefatos de compilação são baixados para o agente que executa o pipeline. Você também pode configurar uma etapa em seu estágio para ignorar o download do artefato.

Por padrão, as liberações são executadas com um escopo de autorização de trabalho de nível de coleta. Isso significa que as versões podem acessar recursos em todos os projetos da organização (ou coleção para o Azure DevOps Server). Isso é útil ao vincular artefatos de construção de outros projetos. Você pode habilitar Limitar o escopo de autorização de trabalho ao projeto atual para pipelines de liberação nas configurações do projeto para restringir o acesso ao artefato de um projeto.

Fontes de artefactos - Jenkins

Para consumir artefatos Jenkins, você deve criar uma conexão de serviço para autenticar com seu servidor Jenkins. Consulte Gerenciar conexões de serviço e conexão de serviço Jenkins para obter mais informações. O projeto Jenkins deve ser configurado com uma ação pós-compilação para publicar seus artefatos.

Os seguintes recursos estão disponíveis ao usar o Jenkins como fonte de artefatos:

Funcionalidade Description
Liberações de gatilho automático Novas versões podem ser criadas automaticamente quando um novo artefato de compilação está disponível (incluindo compilações XAML). Consulte Gatilhos de liberação para obter mais detalhes.
Variáveis de artefato Há suporte para várias variáveis de artefato nas fontes do Azure Pipelines.
Itens de trabalho e confirmações Você pode vincular itens de trabalho do Azure Pipelines e ele será exibido nos detalhes das versões. As confirmações são exibidas quando você usa controles de origem Git ou TFVC.
Download do artefato Por padrão, os artefatos de compilação são baixados para o agente que executa o pipeline. Você também pode configurar uma etapa em seu estágio para ignorar o download do artefato.

Os artefatos gerados pelas compilações do Jenkins normalmente são propagados para repositórios de armazenamento para arquivamento e compartilhamento. O armazenamento de blob do Azure é um dos repositórios suportados, permitindo que você consuma projetos Jenkins que publicam no armazenamento do Azure como fontes de artefatos em um pipeline de lançamento. Os Pipelines do Azure baixam os artefatos automaticamente do Azure para o agente que executa o pipeline. Nesse cenário, a conectividade entre o agente e o servidor Jenkins não é necessária. Os agentes hospedados pela Microsoft podem ser usados sem expor o servidor à Internet.

Nota

O Azure Pipelines pode não conseguir entrar em contato com seu servidor Jenkins se, por exemplo, ele estiver dentro da sua rede corporativa. Se esse for o caso, você pode integrar o Azure Pipelines com o Jenkins configurando um agente local que pode acessar o servidor Jenkins. Você não poderá ver o nome de seus projetos Jenkins ao vincular a uma compilação, mas poderá inserir o nome no campo de texto URL.

Fontes de artefactos - contentores

Ao implantar aplicativos em contêineres, a imagem do contêiner é primeiro enviada por push para um registro de contêiner. Em seguida, você pode implantar sua imagem de contêiner no Aplicativo Web do Azure para Contêineres ou em um cluster Docker/Kubernetes. Você deve criar uma conexão de serviço para autenticar com o Azure. Consulte Gerenciar conexões de serviço para obter mais detalhes.

Os seguintes recursos estão disponíveis ao usar o Contêiner do Azure como uma fonte de artefato:

Funcionalidade Description
Liberações de gatilho automático Novas versões podem ser criadas automaticamente quando um novo artefato de compilação está disponível (incluindo compilações XAML). Consulte Gatilhos de liberação para obter mais detalhes.
Variáveis de artefato Há suporte para várias variáveis de artefato nas fontes do Azure Pipelines.
Itens de trabalho e confirmações Você pode vincular itens de trabalho do Azure Pipelines e ele será exibido nos detalhes das versões. As confirmações são exibidas quando você usa controles de origem Git ou TFVC.
Download do artefato Por padrão, os artefatos de compilação são baixados para o agente que executa o pipeline. Você também pode configurar uma etapa em seu estágio para ignorar o download do artefato.

Nota

Ao usar várias fontes de artefatos, não há suporte para o mapeamento de uma fonte de artefato para acionar um estágio específico. Uma liberação será criada sempre que houver um push para qualquer uma das fontes de artefatos. Se desejar fazer isso, o Azure Pipelines recomenda dividir seu pipeline de liberação em várias versões.

Origens de artefactos - Azure Artifacts

Abaixo estão alguns dos cenários em que você pode usar os Artefatos do Azure como uma fonte de artefatos:

  1. Seu binário de aplicativo é publicado no Azure Artifacts e você deseja consumir o pacote em um pipeline de versão.
  2. Você precisa de pacotes adicionais armazenados nos Artefatos do Azure como parte do seu fluxo de trabalho de implantação.

Usando os Artefatos do Azure em seu pipeline de lançamento, você deve selecionar o Feed, o Pacote e a versão Padrão para seu pacote. Você pode optar por pegar a versão mais recente do pacote, usar uma versão específica ou selecionar a versão no momento da criação da versão. Durante a implantação, o pacote é baixado/extraído para o agente que executa seu pipeline.

Os seguintes recursos estão disponíveis ao usar os Artefatos do Azure como uma fonte de artefatos:

Funcionalidade Description
Liberações de gatilho automático Novas versões podem ser criadas automaticamente quando um novo artefato de compilação está disponível (incluindo compilações XAML). Consulte Gatilhos de liberação para obter mais detalhes.
Variáveis de artefato Há suporte para várias variáveis de artefato nas fontes do Azure Pipelines.
Itens de trabalho e confirmações Você pode vincular itens de trabalho do Azure Pipelines e ele será exibido nos detalhes das versões. As confirmações são exibidas quando você usa controles de origem Git ou TFVC.
Download do artefato Por padrão, os artefatos de compilação são baixados para o agente que executa o pipeline. Você também pode configurar uma etapa em seu estágio para ignorar o download do artefato.

Manipulando snapshots do Maven

Ao usar instantâneos do Maven, várias versões podem ser baixadas ao mesmo tempo (exemplo myApplication-2.1.0.BUILD-20190920.220048-3.jar, myApplication-2.1.0.BUILD-20190820.221046-2.jarmyApplication-2.1.0.BUILD-20190820.220331-1.jar, ). Talvez seja necessário remover a versão antiga e manter apenas o Artefato mais recente antes da implantação. Execute o seguinte comando do PowerShell em um prompt de comando elevado para remover todas as cópias, exceto aquela com o maior valor lexicográfico:

Get-Item "myApplication*.jar" | Sort-Object -Descending Name | Select-Object -SkipIndex 0 | Remove-Item

Nota

Você pode armazenar até 30 instantâneos do Maven em seu feed. Quando você atingir o limite máximo, os Artefatos do Azure excluirão automaticamente os instantâneos até 25. Este processo será acionado automaticamente sempre que 30+ instantâneos forem publicados no seu feed.

Fontes de artefatos - servidor TFS

Você pode usar o Azure Pipelines para implantar artefatos de servidores TFS sem precisar tornar seu servidor detetável na Internet configurando um agente de automação local. Os artefatos são baixados para o agente local e, em seguida, implantados nos servidores de destino especificados sem sair da rede corporativa. Isso é ideal para que os clientes aproveitem seus investimentos em sua infraestrutura local enquanto aproveitam as versões do Azure Pipelines.

Para usar os servidores TFS como uma fonte de artefatos, você deve instalar os artefatos do TFS para a extensão Azure Pipelines do Visual Studio Marketplace e, em seguida, criar uma conexão de serviço para autenticar com o Azure Pipelines. Uma vez autenticado, você pode vincular um pipeline de compilação do TFS ao seu pipeline de liberação e escolher Compilação externa do TFS no menu suspenso Tipo.

Os seguintes recursos estão disponíveis ao usar servidores TFS como uma fonte de artefato:

Funcionalidade Description
Liberações de gatilho automático Novas versões podem ser criadas automaticamente quando um novo artefato de compilação está disponível (incluindo compilações XAML). Consulte Gatilhos de liberação para obter mais detalhes.
Variáveis de artefato Há suporte para várias variáveis de artefato nas fontes do Azure Pipelines.
Itens de trabalho e confirmações Você pode vincular itens de trabalho do Azure Pipelines e ele será exibido nos detalhes das versões. As confirmações são exibidas quando você usa controles de origem Git ou TFVC.
Download do artefato Por padrão, os artefatos de compilação são baixados para o agente que executa o pipeline. Você também pode configurar uma etapa em seu estágio para ignorar o download do artefato.

O Azure Pipelines pode não conseguir entrar em contato com um servidor TFS local caso ele esteja dentro da sua rede corporativa. Nesse caso, você pode integrar o Azure Pipelines ao TFS configurando um agente local que pode acessar o servidor do TFS. Você não poderá ver o nome de seus projetos do TFS ou pipelines de compilação ao vincular a uma compilação, mas poderá incluir essas variáveis nos campos de texto da URL. Além disso, quando você cria uma versão, o Azure Pipelines pode não ser capaz de consultar o servidor TFS para os números de compilação. Em vez disso, insira o ID de compilação (não o número de compilação) da compilação desejada no campo apropriado ou selecione a compilação mais recente .

Fontes de artefatos - TeamCity

Para usar o TeamCity como uma fonte de artefato, você deve primeiro instalar os artefatos TeamCity para a extensão Azure Pipelines do Visual Studio Marketplace.

Depois de concluído, crie uma conexão de serviço para autenticar com seu servidor TeamCity. Em seguida, você pode vincular seu artefato de compilação a um pipeline de liberação. A configuração de compilação do TeamCity deve ser configurada com uma ação para publicar artefatos.

Os seguintes recursos estão disponíveis ao usar o TeamCity como uma fonte de artefatos:

Funcionalidade Description
Liberações de gatilho automático Novas versões podem ser criadas automaticamente quando um novo artefato de compilação está disponível (incluindo compilações XAML). Consulte Gatilhos de liberação para obter mais detalhes.
Variáveis de artefato Há suporte para várias variáveis de artefato nas fontes do Azure Pipelines.
Itens de trabalho e confirmações Você pode vincular itens de trabalho do Azure Pipelines e ele será exibido nos detalhes das versões. As confirmações são exibidas quando você usa controles de origem Git ou TFVC.
Download do artefato Por padrão, os artefatos de compilação são baixados para o agente que executa o pipeline. Você também pode configurar uma etapa em seu estágio para ignorar o download do artefato.

O Azure Pipelines pode não conseguir entrar em contato com seu servidor TeamCity se, por exemplo, ele estiver dentro da sua rede corporativa. Nesse caso, você pode integrar o Azure Pipelines com o TeamCity configurando um agente local que pode acessar o servidor TeamCity. Você não poderá ver o nome de seus projetos TeamCity ao vincular a uma compilação, mas poderá digitá-lo no campo de texto URL.

Alias de origem do artefato

Para garantir a exclusividade de cada download de artefato, cada fonte de artefato vinculada a um pipeline de liberação é automaticamente fornecida com um local de download específico conhecido como alias de origem. Este local pode ser acessado usando a variável: $(System.DefaultWorkingDirectory)\[source alias]

O uso de aliases de origem garante que a renomeação de uma fonte de artefato vinculada não exija a edição das propriedades da tarefa, pois o local de download definido no agente não é alterado.

Por padrão, o alias de origem é o nome da fonte do artefato prefixada com um sublinhado. Dependendo do tipo de origem do artefato, esse será o nome do pipeline de compilação, o nome do trabalho, o nome do projeto ou o nome do repositório. Você pode editar o alias de origem na guia artefatos do pipeline de liberação.

Download do artefato

Quando uma implantação é concluída em um estágio, os artefatos versionados de cada uma das fontes são baixados para o agente de pipeline para que as tarefas executadas nesse estágio possam acessar esses artefatos. Os artefatos baixados não são excluídos quando uma versão é concluída. No entanto, quando você inicia a próxima versão, os artefatos baixados são excluídos e substituídos pelo novo conjunto de artefatos.

Uma nova pasta exclusiva no agente é criada para cada pipeline de liberação quando uma liberação é iniciada, e os artefatos são baixados para a seguinte pasta:$(System.DefaultWorkingDirectory).

O Azure Pipelines não executa nenhuma otimização para evitar o download dos artefatos inalterados se a mesma versão for implantada novamente. Além disso, como o conteúdo baixado anteriormente é sempre excluído quando você inicia uma nova versão, o Azure Pipelines não pode executar downloads incrementais para o agente.

No entanto, você pode configurar seu pipeline para pular o download automático para um trabalho ou estágio específico, se desejar fazê-lo.