définition resources.pipelines.pipeline

Si vous avez un pipeline Azure qui produit des artefacts, votre pipeline peut consommer les artefacts en définissant une ressource de pipeline. Dans Azure DevOps Server 2020 et versions ultérieures, vous pouvez également activer les déclencheurs d’achèvement de pipeline à l’aide d’une ressource 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.

Définitions qui font référence à cette définition : resources.pipelines

Propriétés

pipeline String. Obligatoire comme première propriété.
ID de la ressource de pipeline. Valeurs acceptables : [-_A-Za-z0-9]*.

project String.
Projet pour la source ; par défaut sur le projet actuel.

source String.
Nom du pipeline qui produit l’artefact. Si le pipeline est contenu dans un dossier, incluez le nom du dossier, y compris le premier \, par exemple \security pipelines\security-lib-ci. Cette propriété ne respecte pas la casse et n’a pas besoin de guillemets si le nom inclut des espaces. Le chemin du dossier doit être spécifié s’il existe plusieurs pipelines portant le même nom.

version String.
Le numéro d’exécution du pipeline pour sélectionner l’artefact est défini par défaut sur le dernier pipeline réussi à toutes les étapes ; utilisé uniquement pour les déclencheurs manuels ou planifiés.

branch String.
Branche pour sélectionner l’artefact. Optionnel; par défaut sur toutes les branches, utilisées uniquement pour les déclencheurs manuels ou planifiés.

tags string list.
Liste des balises requises sur le pipeline pour récupérer les artefacts par défaut. Optionnel; utilisé uniquement pour les déclencheurs manuels ou planifiés.

triggerresources.pipelines.pipeline.trigger.
Spécifiez aucun pour désactiver, true pour inclure toutes les branches ou utilisez la syntaxe complète comme décrit dans les exemples suivants.

Notes

Notes

pipeline: spécifie le nom de la ressource de pipeline. Utilisez l’étiquette définie ici lorsque vous faites référence la ressource de pipeline à partir d’autres parties du pipeline, par exemple lors de l’utilisation de variables de ressource de pipeline ou du téléchargement d’artefacts.

Pour plus d’informations sur stages et tags dans le déclencheur de ressources de pipeline, consultez Déclencheurs d’achèvement du pipeline.

Pour plus d’informations sur les déclencheurs de ressources de pipeline, consultez Déclencheurs d’achèvement du pipeline.

Syntaxe du déclencheur de ressource de pipeline

Notes

Les déclencheurs d'achèvement de pipeline utilisent le paramètre de branche par défaut pour les builds manuelles et planifiées afin de déterminer la version des filtres de branche d'un pipeline YAML à évaluer lorsqu'il s'agit de déterminer si un pipeline doit être exécuté à la suite de l'achèvement d'un autre pipeline. Par défaut, ce paramètre pointe vers la branche par défaut du référentiel. Pour plus d’informations, consultez Déclencheurs d’achèvement de pipeline - Considérations relatives aux branches.

Il existe plusieurs façons de définir des déclencheurs dans une ressource de pipeline. Pour déclencher une exécution à la fin d’une exécution du pipeline référencé, utilisez trigger: true.

resources:
  pipelines:
  - pipeline: source-pipeline
    source: TriggeringPipeline
    trigger: true

Pour désactiver le déclencheur de ressources de pipeline, spécifiez la valeur .none

resources:
  pipelines:
  - pipeline: source-pipeline
    source: TriggeringPipeline
    trigger: none

Pour configurer des filtres de branche, utilisez la syntaxe complète. Les filtres de branche peuvent être spécifiés sous la forme d’une liste de branches à inclure ou d’une liste de branches à inclure combinée à une liste de branches à exclure.

Pour spécifier une liste de branches à inclure et à exclure, utilisez la syntaxe suivante trigger .

resources:
  pipelines:
  - pipeline: source-pipeline
    source: TriggeringPipeline
    trigger:
      branches:
        include:
        - main
        - develop
        - features/*
        exclude:
        - features/experimental/*

Pour spécifier une liste de branches à inclure, sans exclusion, omettez la valeur ou utilisez la exclude syntaxe suivante pour spécifier la liste des branches à inclure directement après branches.

resources:
  pipelines:
  - pipeline: source-pipeline
    source: TriggeringPipeline
    trigger:
      branches:
      - main
      - develop

Pour filtrer par étapes ou balises, utilisez la syntaxe suivante 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

Pour plus d’informations, consultez Déclencheurs d’achèvement de pipeline.

Important

Lorsque vous définissez un déclencheur de ressource, si sa ressource de pipeline provient du même référentiel que le pipeline actuel, le déclenchement suit la branche et la validation sur lesquelles l’événement est déclenché. Mais si la ressource de pipeline provient d’un autre référentiel, le pipeline actuel est déclenché sur la branche spécifiée par le paramètre Branche par défaut pour les builds manuelles et planifiées . Pour plus d’informations, consultez Considérations relatives aux branches pour les déclencheurs d’achèvement de pipeline.

Métadonnées de ressources de pipeline en tant que variables prédéfinies

À chaque exécution, les métadonnées d’une ressource de pipeline sont disponibles pour tous les travaux en tant que variables prédéfinies suivantes. Ces variables sont disponibles pour votre pipeline au moment de l’exécution et ne peuvent donc pas être utilisées dans les expressions de modèle, qui sont évaluées au moment de la compilation du 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

Important

projectName n’est pas présent dans les variables si la ressource de pipeline n’a pas de project valeur spécifiée. La project propriété est facultative pour les ressources de pipeline qui font référence à un pipeline dans le même projet, mais peut être spécifiée si vous le souhaitez.

Remplacez par <Alias> l’ID de la ressource de pipeline. Pour la ressource de pipeline suivante, la variable à accéder runID est resources.pipeline.source-pipeline.runID.

resources:
  pipelines:
  - pipeline: source-pipeline
    source: TriggeringPipeline

Lorsqu’un pipeline est déclenché par l’une de ses ressources de pipeline, les variables suivantes sont définies en plus des variables de la liste précédente.

Variable Valeur
Build.Reason ResourceTrigger
Resources.TriggeringAlias Nom de la ressource de pipeline, comme source-pipeline dans l’exemple précédent.
Resource.TriggeringCategory pipeline

L’exemple suivant contient deux ressources 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

Après l’exécution de ce pipeline, la première bash tâche génère le projectName de la ressource de pipeline nommée source-pipeline, qui est FabrikamFiber.

La deuxième bash tâche génère toutes les variables d’environnement disponibles pour la tâche, y compris les variables de ressource de pipeline décrites dans cette section. La liste des variables d’environnement n’est généralement pas effectuée dans un pipeline de production, mais elle peut être utile pour résoudre les problèmes. Dans cet exemple, il existe deux ressources de pipeline, et la sortie contient les deux lignes suivantes.

RESOURCES_PIPELINE_OTHER-PROJECT-PIPELINE_PROJECTNAME=FabrikamRepo
RESOURCES_PIPELINE_SOURCE-PIPELINE_PROJECTNAME=FabrikamFiber

Notes

Les variables système et définies par l’utilisateur sont injectées en tant que variables d’environnement pour votre plateforme. Lorsque les variables sont converties en variables d’environnement, leurs noms sont mis en majuscules et les points se transforment en traits de soulignement. Par exemple, le nom any.variable de la variable devient ANY_VARIABLE.

Pour plus d’informations sur l’utilisation des variables et de la syntaxe des variables, consultez Comprendre la syntaxe des variables, Spécifier des conditions et Expressions.

Vous pouvez consommer des artefacts à partir d’une ressource de pipeline à l’aide d’une download tâche. Consultez le mot clé steps.download.

Exemples

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

Voir aussi