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