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.
trigger
resources.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/*