Partilhar via


definição 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.

Definições que fazem referência a esta 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 fonte; padrão para o projeto atual.

source string.
Nome do pipeline que produz o artefato. Se o pipeline estiver contido numa pasta, inclua o nome da pasta, incluindo o inicial \, por exemplo \security pipelines\security-lib-ci. Esta 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, assume como padrão o pipeline mais recente bem-sucedido em todos os estágios; usado apenas para gatilhos manuais ou agendados.

branch string.
Ramificação para escolher o artefato. Opcional; padrão para todas as ramificações, usado apenas para gatilhos manuais ou agendados.

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

trigger resources.pipelines.pipeline.trigger.
Especifique nenhuma para desabilitar, true para incluir todas as ramificações ou use a sintaxe completa conforme descrito nos exemplos a seguir.

Observações

Observação

pipeline: especifica o nome do recurso de pipeline. Utilize a etiqueta definida aqui ao referir-se ao recurso de pipeline a partir de outras partes do pipeline, como ao usar variáveis de recurso de pipeline ou ao 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 de gatilho de recurso de pipeline

Observação

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

Há várias maneiras de definir gatilhos em um recurso de pipeline. Para acionar 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 ramificações a serem incluídas ou como uma lista de ramificações a serem incluídas combinadas com uma lista de ramificações a serem excluídas.

Para especificar uma lista de ramificações a serem incluídas e excluídas, use a sintaxe trigger a seguir.

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

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

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

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

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 obter mais informações, consulte Gatilhos de conclusão de pipeline.

Importante

Quando você define um gatilho de recurso, se seu recurso de pipeline for do mesmo repositório que o pipeline atual, o acionamento segue a mesma ramificação e confirmação na qual o evento é gerado. Mas se o recurso de pipeline for de um repositório diferente, o pipeline atual será acionado na ramificação especificada pela ramificação Padrão para compilações manuais e agendadas configuração. Para obter mais informações, consulte Considerações sobre ramificação 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 seguintes variáveis predefinidas. Essas variáveis estão disponíveis para seu pipeline em tempo de execução e, portanto, não podem ser usadas em expressões de modelo , que são avaliadas em 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 valor de project especificado. A propriedade project é opcional para recursos de pipeline que fazem referência a um pipeline no mesmo projeto, mas pode ser especificada se desejado.

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

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

Quando um pipeline é acionado 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 do exemplo anterior.
Resources.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

Quando esse pipeline é executado, a primeira tarefa bash produz o projectName do recurso de pipeline chamado source-pipeline, que é FabrikamFiber.

A segunda tarefa bash produz 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 a 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 se convertem em variáveis de ambiente, os nomes das variáveis tornam-se maiúsculas e os períodos transformam-se em sublinhados. Por exemplo, o nome da variável any.variable torna-se ANY_VARIABLE.

Para obter mais informações sobre como usar variáveis e sintaxe de variáveis, consulte Compreender a sintaxe de variáveis, Especificar condiçõese Expressões.

Você pode consumir artefatos de um recurso de pipeline usando uma tarefa download. Consulte a 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/*

Ver também