Partilhar via


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

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

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, 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.

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 artefato primária é usada 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 não é suportado Latest from the build pipeline default branch with tags 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.

Pipelines do Azure

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 Description
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 versão clássicos 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 Vincule itens de trabalho para vê-los exibidos nos detalhes da versão. As confirmações serão mostradas ao usar 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 pipeline lista todos os estágios de implantação em que o artefato foi implantado.

Nota

Para publicar seu artefato de pipeline em um pipeline Clássico, você deve adicionar uma tarefa PublishPipelineArtifact ao seu pipeline. Em pipelines YAML, um artefato de gota é publicado implicitamente.

Limitar o escopo de autorização de trabalho

Por padrão, as versões são executadas com um escopo de autorização de trabalho no nível da organização, permitindo que eles acessem 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, 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 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 alternância Limitar o escopo de autorização de trabalho ao projeto atual para pipelines de liberação 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 alternância Limitar o escopo de autorização de trabalho ao projeto atual para pipelines de liberação 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, você pode configurar várias fontes de artefatos em um único pipeline de versão. 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 fonte de artefato:

Funcionalidade Description
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 Vincule itens de trabalho para vê-los exibidos nos detalhes da versão. As confirmações serão mostradas ao usar 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, as versões são executadas com o escopo de autorização de trabalho no nível da organização, permitindo que eles acessem 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, habilite Limitar o escopo de autorização de trabalho ao projeto atual para pipelines de liberação 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, habilite Limitar o escopo de autorização de trabalho ao projeto atual para pipelines de liberação 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:

  • Seu binário de aplicativo é publicado no Azure Artifacts e você deseja consumir o pacote em um pipeline de versã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 Description
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 Vincule itens de trabalho para vê-los exibidos nos detalhes da versão. As confirmações serão mostradas ao usar 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.

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 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 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. 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 Description
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 Vincule itens de trabalho para vê-los exibidos nos detalhes da versão. As confirmações serão mostradas ao usar 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 Description
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 Vincule itens de trabalho para vê-los exibidos nos detalhes da versão. As confirmações serão mostradas ao usar 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 liberação 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 em um estágio é concluída, os artefatos versionados de cada fonte são baixados para o agente de pipeline para que as tarefas dentro desse estágio possam acessá-los. 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 trabalho>Agente>de tarefas do pipeline>de liberação Download de artefato e desmarque todos os artefatos ou especifique artefatos específicos a serem ignorados.

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

Para ignorar downloads automáticos de artefatos, navegue até o trabalho>Opções adicionais do Agente de tarefas>do pipeline>de liberação e marque a caixa de seleção Ignorar download de artefatos.

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.