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.
trigger
resources.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/*