resources.pipelines.pipeline definition
Si tiene una canalización de Azure que genera artefactos, la canalización puede consumir los artefactos mediante la definición de un recurso de canalización. En Azure DevOps Server 2020 y versiones posteriores, también puede habilitar desencadenadores de finalización de canalización mediante un recurso de canalización.
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.
Definiciones que hacen referencia a esta definición: resources.pipelines
Propiedades
pipeline
Cadena. Obligatorio como primera propiedad.
Identificador del recurso de canalización. Valores aceptables: [-_A-Za-z0-9]*.
project
Cadena.
Proyecto para el origen; el valor predeterminado es el proyecto actual.
source
Cadena.
Nombre de la canalización que genera el artefacto. Si la canalización está contenida en una carpeta, incluya el nombre de la carpeta, incluido el inicial \
, por ejemplo \security pipelines\security-lib-ci
. Esta propiedad no distingue mayúsculas de minúsculas y no necesita comillas si el nombre incluye espacios. La ruta de acceso de la carpeta debe especificarse si hay varias canalizaciones con el mismo nombre.
version
Cadena.
El número de ejecución de la canalización para elegir el artefacto, tiene como valor predeterminado la canalización más reciente correcta en todas las fases; solo se usa para desencadenadores manuales o programados.
branch
Cadena.
Rama para elegir el artefacto. Opcional; el valor predeterminado es todas las ramas, que solo se usan para desencadenadores manuales o programados.
tags
string list.
Lista de etiquetas necesarias en la canalización para recoger artefactos predeterminados. Opcional; solo se usa para desencadenadores manuales o programados.
trigger
resources.pipelines.pipeline.trigger.
Especifique ninguno para deshabilitar, true para incluir todas las ramas o use la sintaxis completa, como se describe en los ejemplos siguientes.
Comentarios
Nota
pipeline:
especifica el nombre del recurso de canalización. Use la etiqueta definida aquí al hacer referencia al recurso de canalización desde otras partes de la canalización, como al usar variables de recursos de canalización o descargar artefactos.
Para más información sobre stages
y tags
en el desencadenador de recursos de canalización, consulte Desencadenadores de finalización de canalización.
Para más información sobre los desencadenadores de recursos de canalización, consulte Desencadenadores de finalización de canalización.
Sintaxis del desencadenador de recursos de canalización
Nota
Los desencadenadores de finalización de canalización usan la configuración Rama predeterminada para compilaciones manuales y programadas para determinar qué versión de la rama de los filtros de rama de una canalización YAML se debe evaluar al determinar si se debe ejecutar una canalización como resultado de la finalización de otra. De forma predeterminada, esta configuración apunta a la rama predeterminada del repositorio. Para más información, consulte Desencadenadores de finalización de canalización: consideraciones sobre la rama.
Hay varias maneras de definir desencadenadores en un recurso de canalización. Para desencadenar una ejecución cuando se complete cualquier ejecución de la canalización a la que se hace referencia, use trigger: true
.
resources:
pipelines:
- pipeline: source-pipeline
source: TriggeringPipeline
trigger: true
Para deshabilitar el desencadenador de recursos de canalización, especifique un valor de none
.
resources:
pipelines:
- pipeline: source-pipeline
source: TriggeringPipeline
trigger: none
Para configurar filtros de rama, use la sintaxis completa. Los filtros de rama se pueden especificar como una lista de ramas que se van a incluir o como una lista de ramas que se van a incluir combinadas con una lista de ramas que se van a excluir.
Para especificar una lista de ramas que se van a incluir y excluir, use la siguiente trigger
sintaxis.
resources:
pipelines:
- pipeline: source-pipeline
source: TriggeringPipeline
trigger:
branches:
include:
- main
- develop
- features/*
exclude:
- features/experimental/*
Para especificar una lista de ramas que se van a incluir, sin exclusión, omita el exclude
valor o use la siguiente sintaxis para especificar la lista de ramas que se van a incluir directamente después branches
de .
resources:
pipelines:
- pipeline: source-pipeline
source: TriggeringPipeline
trigger:
branches:
- main
- develop
Para filtrar por fases o etiquetas, use la sintaxis siguiente 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 más información, consulte Desencadenadores de finalización de canalización.
Importante
Al definir un desencadenador de recursos, si su recurso de canalización procede del mismo repositorio que la canalización actual, el desencadenador sigue la misma rama y confirmación en la que se genera el evento. Pero si el recurso de canalización procede de un repositorio diferente, la canalización actual se desencadena en la rama especificada por el valor de Rama predeterminada para compilaciones manuales y programadas. Para más información, consulte Consideraciones de rama para los desencadenadores de finalización de canalización.
Metadatos de recursos de canalización como variables predefinidas
En cada ejecución, los metadatos de un recurso de canalización están disponibles para todos los trabajos como las siguientes variables predefinidas. Estas variables están disponibles para la canalización en tiempo de ejecución y, por tanto, no se pueden usar en expresiones de plantilla, que se evalúan en tiempo de compilación de canalización.
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
no está presente en las variables si el recurso de canalización no tiene un project
valor especificado. La project
propiedad es opcional para los recursos de canalización que hacen referencia a una canalización en el mismo proyecto, pero se pueden especificar si lo desea.
Reemplace por <Alias>
el identificador del recurso de canalización. Para el siguiente recurso de canalización, la variable a la que se va a acceder runID
es resources.pipeline.source-pipeline.runID
.
resources:
pipelines:
- pipeline: source-pipeline
source: TriggeringPipeline
Cuando una canalización se desencadena mediante uno de sus recursos de canalización, se establecen las siguientes variables además de las variables de la lista anterior.
Variable | Value |
---|---|
Build.Reason |
ResourceTrigger |
Resources.TriggeringAlias |
Nombre del recurso de canalización, como source-pipeline en el ejemplo anterior. |
Resource.TriggeringCategory |
pipeline |
En el ejemplo siguiente se incluyen dos recursos de canalización.
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
Esta canalización se ejecuta, la primera bash
tarea genera el projectName
del recurso de canalización denominado source-pipeline
, que es FabrikamFiber
.
La segunda bash
tarea genera todas las variables de entorno disponibles para la tarea, incluidas las variables de recursos de canalización descritas en esta sección. La enumeración de variables de entorno no suele realizarse en una canalización de producción, pero puede ser útil para solucionar problemas. En este ejemplo hay dos recursos de canalización y la salida contiene las dos líneas siguientes.
RESOURCES_PIPELINE_OTHER-PROJECT-PIPELINE_PROJECTNAME=FabrikamRepo
RESOURCES_PIPELINE_SOURCE-PIPELINE_PROJECTNAME=FabrikamFiber
Nota
Las variables definidas por el sistema y el usuario se insertan como variables de entorno para la plataforma. Cuando las variables se convierten en variables de entorno, los nombres de variable se convierten en mayúsculas y los puntos se convierten en caracteres de subrayado. Por ejemplo, el nombre any.variable
de la variable se convierte en ANY_VARIABLE
.
Para obtener más información sobre el uso de variables y sintaxis de variables, vea Descripción de la sintaxis de variables, Especificar condiciones y Expresiones.
Puede consumir artefactos de un recurso de canalización mediante una tarea download
. Consulte la palabra clave steps.download .
Ejemplos
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/*