Partager via


définition resources.pipelines.pipeline

Si vous disposez d’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 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.

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

Propriétés

chaîne pipeline. Obligatoire en tant que première propriété.
ID de la ressource de pipeline. Valeurs acceptables : [-_A-Za-z0-9]*.

chaîne project.
Project pour la source ; est défini par défaut sur le projet actuel.

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

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

chaîne branch.
Branch pour sélectionner l’artefact. Optionnel; la valeur par défaut de toutes les branches, utilisée uniquement pour les déclencheurs manuels ou planifiés.

tags liste de chaînes.
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.

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

Remarques

Remarque

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 ressources de pipeline ou lors du téléchargement d’artefacts.

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

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

Syntaxe du déclencheur de ressource de pipeline

Remarque

Les déclencheurs d’achèvement de pipeline utilisent la branche par défaut pour les builds manuelles et planifiées paramètre pour déterminer la version d’une branche des filtres de branche d’un pipeline YAML à évaluer lors de la détermination de l’exécution d’un pipeline à la suite 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 lorsqu’une exécution du pipeline référencé est terminée, utilisez trigger: true.

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

Pour désactiver le déclencheur de ressource de pipeline, spécifiez une valeur de 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 en tant que liste de branches à inclure combinée à une liste de branches à exclure.

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

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 exclude ou utilisez la 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 trigger suivante.

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 dépôt que le pipeline actuel, le déclenchement suit la même branche et la même validation sur laquelle l’événement est déclenché. Toutefois, 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 la branche branche par défaut pour les builds manuelles et planifiées paramètre. Pour plus d’informations, consultez considérations relatives aux déclencheurs d’achèvement de pipeline.

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

Dans 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 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 valeur project spécifiée. La propriété project est facultative pour les ressources de pipeline qui référencent un pipeline dans le même projet, mais peuvent être spécifiées si vous le souhaitez.

Remplacez <Alias> par l’ID de la ressource de pipeline. Pour la ressource de pipeline suivante, la variable permettant d’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, tel que source-pipeline de l’exemple précédent.
Resources.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

Le premier bash tâche génère le projectName de la ressource de pipeline nommée source-pipeline, qui est FabrikamFiber.

La deuxième tâche bash 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 la résolution des 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

Remarque

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, les noms de variables deviennent des majuscules et les points se transforment en traits de soulignement. Par exemple, le nom de la variable any.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 conditionset expressions.

Vous pouvez consommer des artefacts à partir d’une ressource de pipeline à l’aide d’une tâche download. 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