Fontes de artefato em pipelines de lançamento Clássicos

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019

Com pipelines de lançamento Clássicos, você pode implantar seus artefatos 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, é possível vincular vários artefatos de diferentes fontes e designar um como a fonte primária com base em suas necessidades.

Fontes de artefato

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 o build mais recente de um branch específico 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 lançamento clássico.

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

Uma captura de tela que mostra como definir uma fonte de artefato primária.

As opções da lista suspensa Versão padrão dependem do tipo de origem da definição de build vinculada. As opções Specify at the time of release creation, Specific version e Latest têm suporte de todos os tipos de repositório. No entanto, Latest from the build pipeline default branch with tags não tem suporte as definições de build XAML.

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

Observação

Ao usar várias fontes de artefato, não há suporte para mapear uma fonte de artefato para disparar uma fase específica. Se você precisar dessa funcionalidade, o Azure Pipelines recomenda dividir o pipeline de lançamento em várias versões.

Azure Pipelines

Você pode vincular seu pipeline de lançamento Clássico 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 build. Essa configuração criará uma versão toda vez que um novo build tornar-se disponível. Os seguintes recursos estão disponíveis ao usar o Azure Pipelines como uma fonte de artefato:

Recurso Descrição
Versões de gatilho automático Novas versões podem ser criadas automaticamente quando um novo artefato está disponível (incluindo builds XAML). Consulte Gatilhos de versão clássicos para obter mais detalhes.
Variáveis de artefato Algumas variáveis de artefato têm o suporte de artefatos referenciados em uma versão Clássica.
Itens de trabalho e commits Vincule itens de trabalho para vê-los exibidos nos detalhes da versão. As confirmações serão mostradas ao usar o Git ou o TFVC.
Download de 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.
Estágios de implantação O resumo do pipeline lista todos os estágios de implantação em que o artefato foi implantado.

Observação

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

Limitar o escopo de autorização do 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 elas acessem recursos em todos os projetos da organização. Isso é útil ao vincular artefatos de pipeline de outros projetos. Para restringir o acesso a artefatos de um projeto, você pode habilitar Limitar o escopo da autorização de trabalho ao projeto atual para pipelines de lançamento nas configurações do projeto.

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

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

  2. Selecione Configurações da organização na parte inferior esquerda.

  3. Selecione Pipelines> *Configurações.

  4. Ative a alternância Limitar o escopo da autorização de trabalho ao projeto atual para pipelines de lançamento para restringir o escopo ao projeto atual. Isso é 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 da autorização de trabalho para um projeto específico:

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

  2. Selecione Configurações do projeto na parte inferior esquerda.

  3. Selecione Pipelines> *Configurações.

  4. Ative a alternância Limitar o escopo da autorização de trabalho ao projeto atual para pipelines de lançamento para restringir o escopo ao projeto atual. Essa configuração é recomendada para aprimorar a segurança de seus pipelines.

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

Observação

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

Observação

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 elas acessem recursos em todos os projetos da coleção.

Azure Repos, GitHub e TFVC

Há alguns cenários em que talvez você queira consumir artefatos diretamente de diferentes controles de origem, sem passá-los por um pipeline de build. Por exemplo:

  • Desenvolva um aplicativo PHP ou JavaScript que não exija um pipeline de build explícito.

  • O gerenciamento de configurações para várias fases em repositórios de controle de versão diferentes e o consumo desses arquivos de configuração como parte do pipeline de implantação.

  • Gerenciamento da infraestrutura e a 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 artefato em um único pipeline de lançamento. Isso permite vincular um pipeline de build que produz binários de aplicativos e um repositório de controle de versão que armazena arquivos de configuração, usando os dois conjuntos de artefatos juntos durante a implantação.

O Azure Pipelines dá suporte ao Azure Repos, ao TFVC (Controle de Versão do Team Foundation) e a repositórios do GitHub. Você pode vincular um pipeline de lançamento a qualquer repositório do Git ou TFVC em 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 do GitHub e selecionar um branch, você pode editar as propriedades padrão dos tipos de artefato após salvar o artefato. Isso será útil se o branch da versão estável for alterado, garantindo que as versões de entrega contínua usem o branch correto para versões mais recentes do artefato. Você também pode especificar detalhes de check-out, como submódulos, a inclusão de arquivos rastreados do Git-LFS e profundidade de busca rasa.

Ao vincular um branch 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, o Git e o TFVC como uma fonte de artefato:

Recurso Descrição
Versões de gatilho automático Novas versões podem ser criadas automaticamente quando um novo artefato está disponível (incluindo builds XAML). Confira Gatilhos de versão para obter mais detalhes.
Variáveis de artefato Algumas variáveis de artefato têm o suporte de artefatos referenciados em uma versão Clássica.
Itens de trabalho e commits Vincule itens de trabalho para vê-los exibidos nos detalhes da versão. As confirmações serão mostradas ao usar o Git ou o TFVC.
Download de 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.

Observação

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

Observação

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

Azure Artifacts

Abaixo estão alguns dos cenários em que você pode usar o Azure Artifacts como uma fonte de artefato:

  • O binário do aplicativo é publicado no Azure Artifacts e você deseja consumir o pacote em um pipeline de lançamento.

  • Você precisa de pacotes adicionais armazenados no Azure Artifacts como parte do fluxo de trabalho de implantação.

Ao usar o Azure Artifacts em seu pipeline de lançamento, você precisa selecionar o Feed, o Pacote e a Versão padrão do pacote. Você pode optar por escolher a versão mais recente do pacote, usar uma versão específica ou especificar a versão 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 o Azure Artifacts como uma fonte de artefato:

Recurso Descrição
Versões de gatilho automático Novas versões podem ser criadas automaticamente quando um novo artefato está disponível (incluindo builds XAML). Confira Gatilhos de versão para obter mais detalhes.
Variáveis de artefato Algumas variáveis de artefato têm o suporte de artefatos referenciados em uma versão Clássica.
Itens de trabalho e commits Vincule itens de trabalho para vê-los exibidos nos detalhes da versão. As confirmações serão mostradas ao usar o Git ou o TFVC.
Download de 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 instantâneos do Maven

Ao usar instantâneos do Maven, várias versões podem ser baixadas ao mesmo tempo (por 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

Observação

Você pode armazenar até 30 instantâneos do Maven no feed. Depois que esse limite for atingido, o Azure Artifacts excluirá automaticamente os instantâneos mais antigos para manter apenas os 25 mais recentes.

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

Ao implantar aplicativos em contêineres, a imagem de contêiner é enviada pela primeira vez 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 do Docker/Kubernetes. Para fazer isso, primeiro você deve criar uma conexão de serviço para se autenticar com o Azure ou o Docker Hub. Consulte Conexão de serviço do Docker Registry para obter mais detalhes.

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

Recurso Descrição
Versões de gatilho automático Novas versões podem ser criadas automaticamente quando um novo artefato está disponível (incluindo builds XAML). Confira Gatilhos de versão para obter mais detalhes.
Variáveis de artefato Algumas variáveis de artefato têm o suporte de artefatos referenciados em uma versão Clássica.
Itens de trabalho e commits Vincule itens de trabalho para vê-los exibidos nos detalhes da versão. As confirmações serão mostradas ao usar o Git ou o TFVC.
Download de 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ê precisa criar uma conexão de serviço para autenticar com o servidor Jenkins. Consulte Conexão de serviço Jenkins para obter mais detalhes. Adicionalmente, seu projeto Jenkins precisa ser configurado com uma ação pós-build para publicar seus artefatos.

Os artefatos gerados por builds 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 artefato em um pipeline de lançamento. O Azure Pipelines baixará esses 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 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 uma fonte de artefato:

Recurso Descrição
Versões de gatilho automático Novas versões podem ser criadas automaticamente quando um novo artefato está disponível (incluindo builds XAML). Confira Gatilhos de versão para obter mais detalhes.
Variáveis de artefato Algumas variáveis de artefato têm o suporte de artefatos referenciados em uma versão Clássica.
Itens de trabalho e commits Vincule itens de trabalho para vê-los exibidos nos detalhes da versão. As confirmações serão mostradas ao usar o Git ou o TFVC.
Download de 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.

Observação

Talvez o Azure Pipelines não consiga executar ping no seu servidor Jenkins se, por exemplo, ele estiver em uma rede corporativa privada. Nesses casos, você poderá integrar o Azure Pipelines ao Jenkins configurando um agente local que tenha acesso ao servidor Jenkins. Embora não possa ver os nomes de seus projetos do Jenkins ao vincular a um pipeline, você poderá inserir manualmente o nome no projeto no campo de texto da URL.

Alias da fonte do artefato

Para garantir a exclusividade de cada download de artefato, todas as fontes de artefato vinculadas a um pipeline de lançamento são fornecidas automaticamente com um local de download específico conhecido como alias de origem. Esse local pode ser acessado usando a variável: $(System.DefaultWorkingDirectory)\[source alias].

Usar um alias de origem garante que a renomeação de uma fonte de artefato vinculada não exija a edição das propriedades da tarefa, porque 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 build, do nome do trabalho, do nome do projeto ou do nome do repositório, dependendo do tipo de origem do artefato. Você pode editar o alias de origem na guia artefatos no pipeline.m de lançamento, a guia artefatos do pipeline de lançamento.

Download do artefato

Quando uma implantação em um estágio for concluída, os artefatos com versão de cada fonte serão baixados para o agente de pipeline para que as tarefas em execução nesse estágio possam acessá-los. Esses artefatos baixados não são excluídos quando um lançamento é concluído. No entanto, quando um novo lançamento é iniciado, os artefatos anteriores são excluídos e substituídos pelos novos.

Uma nova pasta exclusiva no agente é criada para cada pipeline de lançamento quando um novo lançamento é iniciado e os artefatos são baixados para esta pasta:$(System.DefaultWorkingDirectory).

O Azure Pipelines não executa nenhuma otimização para evitar um novo download dos artefatos inalterados caso o mesmo lançamento seja implantado novamente. Adicionalmente, como o conteúdo baixado anteriormente sempre é excluído quando um novo lançamento é iniciado, o Azure Pipelines não pode executar downloads incrementais para o agente.

Para ignorar downloads automáticos de artefatos, navegue até o seu Pipeline de lançamentos>Tarefas>Trabalho de agente>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 lançamento Clássico no Azure DevOps Services.

Para ignorar downloads automáticos de artefatos, navegue até o seu Pipeline de lançamentos>Tarefas>Trabalho de agente>Additional options 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 lançamento Clássico no Azure DevOps Server.