Partilhar via


resources.pipelines.pipeline definition

Se tiver um Pipeline do Azure que produz artefactos, o pipeline pode consumir os artefactos ao definir um recurso de pipeline. No Azure DevOps Server 2020 e superior, também pode ativar acionadores de conclusão do pipeline com 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 referenciam esta definição: resources.pipelines

Propriedades

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

project cadeia.
Projeto para a origem; predefinições para o projeto atual.

source cadeia.
Nome do pipeline que produz o artefacto. Se o pipeline estiver contido numa pasta, inclua o nome da pasta, incluindo o principal \, por exemplo \security pipelines\security-lib-ci. Esta propriedade não é sensível a maiúsculas e minúsculas e não precisa de aspas se o nome incluir espaços. O caminho da pasta tem de ser especificado se existirem vários pipelines com o mesmo nome.

version cadeia.
O número de execução do pipeline para escolher o artefacto, predefine o pipeline mais recente com êxito em todas as fases; utilizado apenas para acionadores manuais ou agendados.

branch cadeia.
Ramificar para escolher o artefacto. Opcional; predefinições para todos os ramos, utilizados apenas para acionadores manuais ou agendados.

tags lista de cadeias.
Lista de etiquetas necessárias no pipeline para recolher artefactos predefinidos. Opcional; utilizado apenas para acionadores manuais ou agendados.

triggerresources.pipelines.pipeline.trigger.
Especifique nenhum para desativar, verdadeiro para incluir todos os ramos ou utilize a sintaxe completa, conforme descrito nos exemplos seguintes.

Observações

Nota

pipeline: especifica o nome do recurso de pipeline. Utilize a etiqueta definida aqui ao referir-se ao recurso de pipeline de outras partes do pipeline, como quando utilizar variáveis de recursos de pipeline ou transferir artefactos.

Para obter mais informações sobre stages e tags no acionador de recursos do pipeline, veja acionadores de conclusão do pipeline.

Para obter mais informações sobre os acionadores de recursos de pipeline, veja acionadores de conclusão do pipeline.

Sintaxe do acionador de recursos do pipeline

Nota

Os acionadores de conclusão do pipeline utilizam o ramo Predefinido para a definição de compilações manuais e agendadas para determinar qual a versão do ramo dos filtros de ramo de um pipeline YAML para avaliar quando determinar se deve executar um pipeline como resultado da conclusão de outro pipeline. Por predefinição, esta definição aponta para o ramo predefinido do repositório. Para obter mais informações, veja Acionadores de conclusão do pipeline – considerações de ramo.

Existem várias formas de definir acionadores num recurso de pipeline. Para acionar uma execução quando qualquer execução do pipeline referenciado for concluída, utilize trigger: true.

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

Para desativar o acionador de recursos do pipeline, especifique um valor de none.

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

Para configurar filtros de ramo, utilize a sintaxe completa. Os filtros de ramo podem ser especificados como uma lista de ramos a incluir ou como uma lista de ramos a incluir combinados com uma lista de ramos a excluir.

Para especificar uma lista de ramos a incluir e excluir, utilize a seguinte trigger sintaxe.

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

Para especificar uma lista de ramos a incluir, sem exclusões, omita o exclude valor ou utilize a seguinte sintaxe para especificar a lista de ramos a incluir diretamente a seguir branches.

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

Para filtrar por fases ou etiquetas, utilize a seguinte trigger sintaxe.

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, veja Acionadores de conclusão do pipeline.

Importante

Quando define um acionador de recurso, se o respetivo recurso de pipeline for do mesmo repositório que o pipeline atual, o acionamento segue o mesmo ramo e consolida o qual o evento é gerado. No entanto, se o recurso do pipeline for de um repositório diferente, o pipeline atual é acionado no ramo especificado pelo ramo Predefinido para a definição de compilações manuais e agendadas . Para obter mais informações, veja Considerações do ramo para acionadores de conclusão do 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 todas as tarefas como as seguintes variáveis predefinidas. Estas variáveis estão disponíveis para o pipeline no runtime e, por conseguinte, não podem ser utilizadas em expressões de modelo, que são avaliadas no momento da 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 está presente nas variáveis se o recurso do pipeline não tiver um project valor especificado. A project propriedade é opcional para recursos de pipeline que referenciam um pipeline no mesmo projeto, mas podem ser especificados se assim o desejar.

Substitua <Alias> pelo ID do recurso de pipeline. Para o seguinte recurso de pipeline, a variável a aceder runID é resources.pipeline.source-pipeline.runID.

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

Quando um pipeline é acionado por um dos respetivos recursos de pipeline, as seguintes variáveis são definidas para 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 seguinte 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

Este pipeline é executado, a primeira bash tarefa produz o projectName recurso do pipeline com o nome source-pipeline, que é FabrikamFiber.

A segunda bash tarefa produz todas as variáveis de ambiente disponíveis para a tarefa, incluindo as variáveis de recursos de pipeline descritas nesta secção. Normalmente, a listagem de variáveis de ambiente não é feita num pipeline de produção, mas pode ser útil para a resolução de problemas. Neste exemplo, existem dois recursos de pipeline e a saída contém as duas linhas seguintes.

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

Nota

As variáveis definidas pelo sistema e pelo utilizador são injetadas como variáveis de ambiente para a sua plataforma. Quando as variáveis são convertidas em variáveis de ambiente, os nomes das variáveis tornam-se maiúsculas e os períodos transformam-se em carateres de sublinhado. Por exemplo, o nome any.variable da variável torna-se ANY_VARIABLE.

Para obter mais informações sobre como utilizar variáveis e sintaxe variável, veja Compreender a sintaxe variável, Especificar condições e Expressões.

Pode consumir artefactos de um recurso de pipeline com uma download tarefa. Veja 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