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.

triggerresources.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 branchesde .

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/*

Vea también