definição de resources.pipelines.pipeline

Se você tiver um Pipeline do Azure que produz artefatos, seu pipeline poderá consumir os artefatos definindo um recurso de pipeline. No Azure DevOps Server 2020 e superior, você também pode habilitar gatilhos de conclusão de pipeline usando um recurso de pipeline.

pipelines:
- pipeline: string # Required as first property. ID of the pipeline resource.
  project: string # Project for the source; defaults to current project.
  source: string # Name of the pipeline that produces the artifact.
  version: string # The pipeline run number to pick the artifact, defaults to latest pipeline successful across all stages; used only for manual or scheduled triggers.
  branch: string # Branch to pick the artifact. Optional; defaults to all branches, used only for manual or scheduled triggers.
  tags: [ string ] # List of tags required on the pipeline to pickup default artifacts. Optional; used only for manual or scheduled triggers.
  trigger:  # Specify none to disable, true to include all branches, or use the full syntax as described in the following examples.
    enabled: boolean # Whether the trigger is enabled; defaults to true.
    branches: branches # Branches to include or exclude for triggering a run.
    stages: [ string ] # List of stages that when matched will trigger the pipeline.
    tags: [ string ] # List of tags that when matched will trigger the pipeline.
pipelines:
- pipeline: string # Required as first property. ID of the pipeline resource.
  project: string # Project for the source; defaults to current project.
  source: string # Name of the pipeline that produces the artifact.
  version: string # The pipeline run number to pick the artifact, defaults to latest pipeline successful across all stages; used only for manual or scheduled triggers.
  branch: string # Branch to pick the artifact. Optional; defaults to all branches, used only for manual or scheduled triggers.
  tags: [ string ] # List of tags required on the pipeline to pickup default artifacts. Optional; used only for manual or scheduled triggers.
  trigger:  # Specify none to disable, true to include all branches, or use the full syntax as described in the following examples.
    enabled: boolean # Whether the trigger is enabled; defaults to true.
    branches: branches # Branches to include or exclude for triggering a run.
pipelines:
- pipeline: string # Required as first property. ID of the pipeline resource.
  project: string # Project for the source; defaults to current project.
  source: string # Name of the pipeline that produces the artifact.
  version: string # The pipeline run number to pick the artifact, defaults to latest pipeline successful across all stages; used only for manual or scheduled triggers.
  branch: string # Branch to pick the artifact. Optional; defaults to all branches, used only for manual or scheduled triggers.

Definições que fazem referência a essa definição: resources.pipelines

Propriedades

pipeline String. Obrigatório como primeira propriedade.
ID do recurso de pipeline. Valores aceitáveis: [-_A-Za-z0-9]*.

project String.
Projeto para a origem; usa como padrão o projeto atual.

source String.
Nome do pipeline que produz o artefato. Se o pipeline estiver contido em uma pasta, inclua o nome da pasta, incluindo o principal \, por exemplo \security pipelines\security-lib-ci, . Essa propriedade não diferencia maiúsculas de minúsculas e não precisa de aspas se o nome incluir espaços. O caminho da pasta deve ser especificado se houver vários pipelines com o mesmo nome.

version String.
O número de execução do pipeline para escolher o artefato, o padrão é o pipeline mais recente bem-sucedido em todos os estágios; usado apenas para gatilhos manuais ou agendados.

branch String.
Branch para escolher o artefato. Opcional; o padrão é para todos os branches, usados apenas para gatilhos manuais ou agendados.

tags lista de cadeias de caracteres.
Lista de marcas necessárias no pipeline para retirada de artefatos padrão. Opcional; usado apenas para gatilhos manuais ou agendados.

triggerresources.pipelines.pipeline.trigger.
Especifique nenhum para desabilitar, true para incluir todos os branches ou use a sintaxe completa, conforme descrito nos exemplos a seguir.

Comentários

Observação

pipeline: especifica o nome do recurso de pipeline. Use o rótulo definido aqui ao fazer referência ao recurso de pipeline de outras partes do pipeline, como ao usar variáveis de recurso de pipeline ou baixar artefatos.

Para obter mais informações sobre stages e tags no gatilho de recurso de pipeline, consulte gatilhos de conclusão de pipeline.

Para obter mais informações sobre gatilhos de recursos de pipeline, consulte gatilhos de conclusão de pipeline.

Sintaxe do gatilho de recurso de pipeline

Observação

Os gatilhos de conclusão de pipeline usam a configuração Branch padrão para compilações manuais e agendadas para determinar qual versão do branch dos filtros de branch de um pipeline YAML avaliar ao determinar se um pipeline deve ser executado como resultado da conclusão de outro pipeline. Por padrão, essa configuração aponta para o branch padrão do repositório. Para obter mais informações, consulte Gatilhos de conclusão de pipeline – considerações de branch.

Há várias maneiras de definir gatilhos em um recurso de pipeline. Para disparar uma execução quando qualquer execução do pipeline referenciado for concluída, use trigger: true.

resources:
  pipelines:
  - pipeline: source-pipeline
    source: TriggeringPipeline
    trigger: true

Para desabilitar o gatilho de recurso de pipeline, especifique um valor de none.

resources:
  pipelines:
  - pipeline: source-pipeline
    source: TriggeringPipeline
    trigger: none

Para configurar filtros de ramificação, use a sintaxe completa. Os filtros de ramificação podem ser especificados como uma lista de branches a serem incluídos ou como uma lista de branches a serem incluídos combinados com uma lista de branches a serem excluídos.

Para especificar uma lista de branches a serem incluídos e excluídos, use a sintaxe a seguir trigger .

resources:
  pipelines:
  - pipeline: source-pipeline
    source: TriggeringPipeline
    trigger:
      branches:
        include:
        - main
        - develop
        - features/*
        exclude:
        - features/experimental/*

Para especificar uma lista de branches a serem incluídos, sem exclusões, omita o exclude valor ou use a sintaxe a seguir para especificar a lista de branches a serem incluídos diretamente após branches.

resources:
  pipelines:
  - pipeline: source-pipeline
    source: TriggeringPipeline
    trigger:
      branches:
      - main
      - develop

Para filtrar por estágios ou marcas, use a sintaxe a seguir trigger .

resources:
  pipelines:
  - pipeline: source-pipeline
    source: TriggeringPipeline
    trigger:
      branches: # Branches to include
      tags: # List of tags that when matched will trigger the pipeline. 
      - release25
      stages: # List of stages that when complete will trigger the pipeline. 
      - build

Para saber mais, consulte Gatilho de evento de conclusão de pipeline.

Importante

Quando você define um gatilho de recurso, se seu recurso do pipeline for do mesmo repositório que o pipeline atual, o disparo seguirá o mesmo branch e confirmará em que o evento é gerado. Mas se o recurso de pipeline for de um repositório diferente, o pipeline atual será disparado no branch especificado pela configuração Branch padrão para builds manuais e agendados. Para obter mais informações, confira Considerações de branch para gatilhos de conclusão de pipeline.

Metadados de recursos de pipeline como variáveis predefinidas

Em cada execução, os metadados de um recurso de pipeline estão disponíveis para todos os trabalhos como as variáveis predefinidas a seguir. Essas variáveis estão disponíveis para o pipeline em runtime e, portanto, não podem ser usadas em expressões de modelo, que são avaliadas no tempo de compilação do pipeline.

resources.pipeline.<Alias>.projectName
resources.pipeline.<Alias>.projectID
resources.pipeline.<Alias>.pipelineName
resources.pipeline.<Alias>.pipelineID
resources.pipeline.<Alias>.runName
resources.pipeline.<Alias>.runID
resources.pipeline.<Alias>.runURI
resources.pipeline.<Alias>.sourceBranch
resources.pipeline.<Alias>.sourceCommit
resources.pipeline.<Alias>.sourceProvider
resources.pipeline.<Alias>.requestedFor
resources.pipeline.<Alias>.requestedForID

Importante

projectName não estará presente nas variáveis se o recurso de pipeline não tiver um project valor especificado. A project propriedade é opcional para recursos de pipeline que fazem referência a um pipeline no mesmo projeto, mas podem ser especificados se desejado.

Substitua <Alias> pela ID do recurso de pipeline. Para o recurso de pipeline a seguir, a variável a ser acessada runID é resources.pipeline.source-pipeline.runID.

resources:
  pipelines:
  - pipeline: source-pipeline
    source: TriggeringPipeline

Quando um pipeline é disparado por um de seus recursos de pipeline, as variáveis a seguir são definidas além das variáveis na lista anterior.

Variável Valor
Build.Reason ResourceTrigger
Resources.TriggeringAlias O nome do recurso de pipeline, como source-pipeline no exemplo anterior.
Resource.TriggeringCategory pipeline

O exemplo a seguir tem dois recursos de pipeline.

resources:
 pipelines:
   - pipeline: source-pipeline
     source: PipelineTriggerSource
     project: FabrikamFiber
     trigger: true
   - pipeline: other-project-pipeline
     source: PipelineTriggerFromOtherProject
     project: FabrikamRepo
     trigger: true

trigger: none # Only trigger with pipeline resource trigger

pool:
  vmImage: ubuntu-latest

- bash: echo $(resources.pipeline.source-pipeline.projectName)
- bash: printenv | sort

Esse pipeline é executado, a primeira bash tarefa gera o projectName do recurso de pipeline chamado source-pipeline, que é FabrikamFiber.

A segunda bash tarefa gera todas as variáveis de ambiente disponíveis para a tarefa, incluindo as variáveis de recurso de pipeline descritas nesta seção. A listagem de variáveis de ambiente normalmente não é feita em um pipeline de produção, mas pode ser útil para solução de problemas. Neste exemplo, há dois recursos de pipeline e a saída contém as duas linhas a seguir.

RESOURCES_PIPELINE_OTHER-PROJECT-PIPELINE_PROJECTNAME=FabrikamRepo
RESOURCES_PIPELINE_SOURCE-PIPELINE_PROJECTNAME=FabrikamFiber

Observação

As variáveis definidas pelo sistema e pelo usuário são injetadas como variáveis de ambiente para sua plataforma. Quando as variáveis são convertidas em variáveis de ambiente, os nomes de variáveis passam a ficar em maiúsculas e os pontos se transformam em sublinhados. Por exemplo, o nome any.variable da variável se torna ANY_VARIABLE.

Para obter mais informações sobre como usar variáveis e sintaxe variável, consulte Noções básicas sobre sintaxe variável, Especificar condições e Expressões.

Você pode consumir artefatos de um recurso de pipeline usando uma tarefa download. Consulte o palavra-chave steps.download.

Exemplos

resources:
  pipelines:
  - pipeline: MyAppA
    source: MyCIPipelineA
  - pipeline: MyAppB
    source: MyCIPipelineB
    trigger: true
  - pipeline: MyAppC
    project:  DevOpsProject
    source: MyCIPipelineC
    branch: releases/M159
    version: 20190718.2
    trigger:
      branches:
        include:
        - main
        - releases/*
        exclude:
        - users/*

Confira também