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.
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, el valor predeterminado es la canalización más reciente correcta en todas las fases; solo se usa para desencadenadores manuales o programados.
branch
cadena.
Rama para seleccionar el artefacto. Opcional; el valor predeterminado es todas las ramas, que solo se usan para desencadenadores manuales o programados.
tags
lista de cadenas.
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.
Observaciones
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 obtener 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 obtener 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 rama predeterminada de para compilaciones manuales y programadas configuración para determinar qué versión de rama de una canalización de YAML se va a evaluar al determinar si se debe ejecutar una canalización como resultado de la finalización de otra canalización. De forma predeterminada, esta configuración apunta a la rama predeterminada del repositorio. Para obtener más información, consulte desencadenadores de finalización de canalización: consideraciones de 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 sintaxis trigger
.
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 exclusiones, omita el valor de exclude
o use la siguiente sintaxis para especificar la lista de ramas que se van a incluir directamente después de branches
.
resources:
pipelines:
- pipeline: source-pipeline
source: TriggeringPipeline
trigger:
branches:
- main
- develop
Para filtrar por fases o etiquetas, use la siguiente sintaxis 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 obtener 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 la rama Rama predeterminada para compilaciones manuales y programadas configuración. Para obtener 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 valor project
especificado. La propiedad project
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 <Alias>
por el identificador del recurso de canalización. Para el siguiente recurso de canalización, la variable para acceder a 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, las siguientes variables se establecen además de las variables de la lista anterior.
Variable | Valor |
---|---|
Build.Reason |
ResourceTrigger |
Resources.TriggeringAlias |
Nombre del recurso de canalización, como source-pipeline del ejemplo anterior. |
Resources.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
Si se ejecuta esta canalización, la primera tarea de bash
genera el projectName
del recurso de canalización denominado source-pipeline
, que es FabrikamFiber
.
La segunda tarea bash
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 de la variable any.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 condicionesy expresiones de .
Puede consumir artefactos de un recurso de canalización mediante una tarea de 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/*