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