Partilhar via


Fontes de artefatos em pipelines de liberação clássica

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

Com os pipelines de liberação clássicos, você pode implantar seus artefatos a partir de uma ampla variedade de fontes. Usando a interface gráfica, você pode configurar seu pipeline para integrar e consumir artefatos de vários serviços. Além disso, você pode vincular vários artefatos de diferentes fontes e designar um como a fonte primária com base em suas necessidades.

Fontes de artefactos

O Azure Pipelines dá suporte a uma ampla variedade de repositórios, serviços e plataformas de CI/CD. Ao criar uma versão de lançamento, pode-se 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.

Uma captura de tela que mostra como adicionar um artefato a um pipeline de liberação clássico.

Se você vincular vários artefatos, poderá especificar qual deles é a fonte primária (padrão). A fonte de artefacto primária é utilizada para definir várias variáveis predefinidas e também pode ser usada para nomear versões.

Uma captura de tela que mostra como definir um artefato de origem primária.

As opções suspensas Versão padrão dependem do tipo de origem da definição de compilação vinculada. As opções Specify at the time of release creation, Specific versione Latest são suportadas por todos os tipos de repositório. No entanto, o Latest from the build pipeline default branch with tags não é suportado por definições de compilação XAML.

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

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. Se você precisar dessa funcionalidade, o Azure Pipelines recomenda dividir seu pipeline de liberação em várias versões.

Azure Pipelines

Você pode vincular seu pipeline de liberação Classic a qualquer artefato de pipeline. Além disso, você pode vincular vários artefatos e configurar gatilhos de implantação em várias fontes de compilação. Essa configuração criará uma versão sempre que uma nova compilação estiver disponível. Os seguintes recursos estão disponíveis ao usar o Azure Pipelines como uma fonte de artefato:

Funcionalidade Descrição
Liberações de gatilho automático Novas versões podem ser criadas automaticamente quando um novo artefato está disponível (incluindo compilações XAML). Consulte triggers de versão clássica para obter mais detalhes.
Variáveis de artefato Várias variáveis de artefato são suportadas para artefatos referenciados em uma versão clássica.
Itens de trabalho e confirmações Ligue itens de trabalho para serem exibidos nos detalhes do lançamento. Os commits serão mostrados quando se utiliza o Git ou TFVC.
Download do artefato Por padrão, os artefatos de pipeline 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, se necessário.
Etapas de implantação O resumo do fluxo lista todos os estágios de implantação nos quais o artefato foi implantado.

Nota

Para publicar o seu artefacto de pipeline num pipeline Clássico, deve adicionar uma tarefa PublishPipelineArtifact ao seu pipeline. Nas pipelines YAML, um artifacto drop é publicado implicitamente.

Limitar o escopo de autorização de trabalho

Por padrão, os lançamentos são executados com um âmbito de autorização de trabalho ao nível da organização, permitindo o acesso a recursos em todos os projetos da organização. Isso é útil ao vincular artefatos de pipeline de outros projetos. Para restringir o acesso aos artefactos de um projeto, pode ativar Limitar o escopo de autorização de trabalho ao projeto atual para pipelines de lançamentos nas configurações do projeto

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

  1. Entre na sua organização do Azure DevOps.

  2. Selecione Configurações da organização no canto inferior esquerdo.

  3. Selecione Pipelines> *Settings.

  4. Ative a opção Limitar o escopo de autorização de trabalho ao projeto atual para pipelines de lançamento para restringir o escopo ao projeto atual. Isto é recomendado para aumentar a segurança.

    Uma captura de tela que mostra como definir o escopo de autorização de trabalho para a organização.

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

  1. Entre em sua organização do Azure DevOps e navegue até seu projeto.

  2. Selecione Configurações do projeto no canto inferior esquerdo.

  3. Selecione Pipelines> *Settings.

  4. Ative a opção Limitar o escopo de autorização de trabalho ao projeto atual para pipelines de lançamento para restringir o escopo ao projeto atual. Essa configuração é recomendada para melhorar a segurança de seus pipelines.

    Uma captura de tela que mostra como definir o escopo de autorização de trabalho para um projeto.

Nota

Se o escopo for definido no nível da organização, ele não poderá ser alterado individualmente em cada projeto.

Nota

Por padrão, as versões são executadas com um escopo de autorização de trabalho no nível da coleção, permitindo que eles acessem recursos em todos os projetos da coleção.

Azure Repos, GitHub e TFVC

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

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

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

  • Gerenciamento de infraestrutura e configuração como código em um repositório de controle de versão.

Com o Azure Pipelines, pode-se configurar múltiplas fontes de artefactos num único pipeline de lançamento. Isso permite vincular um pipeline de compilação que produz binários de aplicativo e um repositório de controle de versão que armazena arquivos de configuração, usando ambos os conjuntos de artefatos juntos durante a implantação.

O Azure Pipelines dá suporte aos repositórios Azure Repos, Team Foundation Version Control (TFVC) e GitHub. Você pode vincular um pipeline de liberação a qualquer repositório Git ou TFVC dentro de sua coleção de projetos, desde que tenha acesso de leitura. Nenhuma configuração adicional é necessária ao implantar artefatos de controle de versão na mesma coleção.

Ao vincular um repositório GitHub e selecionar uma ramificação, você pode editar as propriedades padrão dos tipos de artefato depois de salvar o artefato. Isso é útil se a ramificação da versão estável mudar, garantindo que as versões de entrega contínua usem a ramificação correta para versões mais recentes do artefato. Você também pode especificar detalhes de checkout, como submódulos, inclusão de arquivos rastreados do Git-LFS e profundidade de busca superficial.

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

Os seguintes recursos estão disponíveis ao usar o Azure Repos, Git e TFVC como uma origem de artefatos:

Funcionalidade Descrição
Liberações de gatilho automático Novas versões podem ser criadas automaticamente quando um novo artefato está disponível (incluindo compilações XAML). Consulte Gatilhos de liberação para obter mais detalhes.
Variáveis de artefato Várias variáveis de artefato são suportadas para artefatos referenciados em uma versão clássica.
Itens de trabalho e confirmações Ligue itens de trabalho para serem exibidos nos detalhes do lançamento. Os commits serão mostrados quando se utiliza o Git ou TFVC.
Download do artefato Por padrão, os artefatos de pipeline 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, se necessário.

Nota

Por padrão, os lançamentos são executados com o escopo de autorização de tarefas no nível da organização, permitindo o acesso a recursos em todos os projetos da organização. Isso é útil ao vincular artefatos de pipeline de outros projetos. Para restringir o acesso aos artefatos de um projeto, ative Limitar o escopo de autorização de trabalho ao projeto atual para pipelines de lançamento nas configurações do projeto.

Nota

Por padrão, as versões são executadas com escopo de autorização de trabalho no nível de coleção, permitindo que eles acessem recursos em todos os projetos da coleção. Isso é útil ao vincular artefatos de pipeline de outros projetos. Para restringir o acesso aos artefatos de um projeto, ative Limitar o escopo de autorização de trabalho ao projeto atual para pipelines de lançamento nas configurações do projeto.

Artefactos do Azure

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

  • O seu binário de aplicação é publicado no Azure Artifacts e você deseja consumir um pacote num pipeline de distribuição.

  • Você precisa de pacotes adicionais armazenados nos Artefatos do Azure como parte do seu fluxo de trabalho de implantação.

Ao usar 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 especificar no momento da criação da versão. Durante a implantação, o pacote é baixado para o agente que executa o pipeline.

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

Funcionalidade Descrição
Liberações de gatilho automático Novas versões podem ser criadas automaticamente quando um novo artefato está disponível (incluindo compilações XAML). Consulte Gatilhos de liberação para obter mais detalhes.
Variáveis de artefato Várias variáveis de artefato são suportadas para artefatos referenciados em uma versão clássica.
Itens de trabalho e confirmações Ligue itens de trabalho para serem exibidos nos detalhes do lançamento. Os commits serão mostrados quando se utiliza o Git ou TFVC.
Download do artefato Por padrão, os artefatos de pipeline 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, se necessário.

Lidando com snapshots do Maven

Ao usar snapshots do Maven, várias versões podem ser baixadas simultaneamente (exemplo myApplication-2.1.0.BUILD-20190920.220048-3.jar, myApplication-2.1.0.BUILD-20190820.221046-2.jar, myApplication-2.1.0.BUILD-20190820.220331-1.jar). Talvez seja necessário remover as versões antigas e manter apenas o artefato mais recente antes da implantação.

Execute o seguinte comando em um prompt do PowerShell para remover todas as cópias, exceto aquela com o valor lexicográfico mais alto:

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 esse limite for atingido, os Artefatos do Azure excluirão automaticamente os instantâneos mais antigos para manter apenas os 25 mais recentes.

Repositório de Contêiner do Azure e Hub do Docker

Ao implantar aplicações em contentores, a imagem do contentor é primeiro carregada para um registo de contentores. Em seguida, você pode implantar sua imagem de contêiner no Aplicativo Web do Azure para Contêineres ou em um cluster Docker/Kubernetes. Para fazer isso, você deve primeiro criar uma conexão de serviço para autenticar com o Azure ou o Docker Hub. Consulte Conexão do serviço Registro do Docker para obter mais detalhes.

Os seguintes recursos estão disponíveis ao usar o Repositório de Contêiner do Azure ou o Docker Hub como uma fonte de artefato:

Funcionalidade Descrição
Liberações de gatilho automático Novas versões podem ser criadas automaticamente quando um novo artefato está disponível (incluindo compilações XAML). Consulte Gatilhos de liberação para obter mais detalhes.
Variáveis de artefato Várias variáveis de artefato são suportadas para artefatos referenciados em uma versão clássica.
Itens de trabalho e confirmações Ligue itens de trabalho para serem exibidos nos detalhes do lançamento. Os commits serão mostrados quando se utiliza o Git ou TFVC.
Download do artefato Por padrão, os artefatos de pipeline 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, se necessário.

Jenkins

Para consumir artefatos Jenkins, você deve criar uma conexão de serviço para autenticar com seu servidor Jenkins. Consulte Conexão de serviço Jenkins para obter mais detalhes. Além disso, seu projeto Jenkins deve ser configurado com uma ação pós-compilação para publicar seus artefatos.

Os artefatos gerados pelas compilações do Jenkins normalmente são propagados para repositórios de armazenamento para arquivamento e compartilhamento. O Armazenamento de Blobs do Azure é um desses repositórios, permitindo que você use projetos Jenkins que publicam no Armazenamento do Azure como fontes de artefatos em um pipeline de versão. O Azure Pipelines baixará automaticamente esses artefatos 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, e os agentes hospedados pela Microsoft podem ser usados sem expor o servidor Jenkins à Internet.

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

Funcionalidade Descrição
Liberações de gatilho automático Novas versões podem ser criadas automaticamente quando um novo artefato está disponível (incluindo compilações XAML). Consulte Gatilhos de liberação para obter mais detalhes.
Variáveis de artefato Várias variáveis de artefato são suportadas para artefatos referenciados em uma versão clássica.
Itens de trabalho e confirmações Ligue itens de trabalho para serem exibidos nos detalhes do lançamento. Os commits serão mostrados quando se utiliza o Git ou TFVC.
Download do artefato Por padrão, os artefatos de pipeline 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, se necessário.

Nota

O Azure Pipelines pode não ser capaz de executar ping no seu servidor Jenkins se ele estiver dentro de uma rede empresarial privada. Nesses casos, você pode integrar o Azure Pipelines ao Jenkins configurando um agente local que tenha acesso ao servidor Jenkins. Embora você possa não ver os nomes de seus projetos Jenkins ao vincular a um pipeline, você pode inserir manualmente o nome do projeto 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 lançamento recebe automaticamente 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 permanece inalterado.

Por padrão, o alias de origem é o nome da fonte do artefato prefixada com um sublinhado (por exemplo, _mslearn-tailspin-spacegame-web). O alias de origem pode corresponder ao nome do pipeline de compilação, nome do trabalho, nome do projeto ou nome do repositório, dependendo do tipo de origem do artefato. Você pode editar o alias de origem na guia artefatos em seu pipeline de liberação.m a guia artefatos do pipeline de liberação.

Download do artefato

Quando uma implantação num estágio é concluída, os artefatos versionados de cada fonte são descarregados para o agente de pipeline, permitindo que as tarefas dentro desse estágio possam aceder a eles. Esses artefatos baixados não são excluídos quando uma versão é concluída. No entanto, quando uma nova versão é iniciada, os artefatos anteriores são excluídos e substituídos pelos novos.

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

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

Para ignorar downloads automáticos de artefatos, navegue até o Pipeline de Lançamento>Tarefas>Trabalho do Agente>Download de Artefatos e desmarque todos os artefatos ou especifique artefatos particulares a serem ignorados.

Uma captura de tela que mostra como ignorar o download automático de artefatos num pipeline de lançamento Classic no Azure DevOps Services.

Para ignorar downloads automáticos de artefatos, navegue até o de liberação e marque a >

Uma captura de tela que mostra como ignorar o download automático de artefatos em um pipeline de versão Classic no Servidor de DevOps do Azure.