definition resources.pipelines.pipelines
Wenn Sie über eine Azure-Pipeline verfügen, die Artefakte erzeugt, kann Ihre Pipeline die Artefakte nutzen, indem sie eine Pipelineressource definiert. In Azure DevOps Server 2020 und höher können Sie auch Trigger für den Pipelineabschluss mithilfe einer Pipelineressource aktivieren.
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.
Definitionen, die auf diese Definition verweisen: resources.pipelines
Eigenschaften
pipeline
Schnur. Erforderlich als erste Eigenschaft.
ID der Pipelineressource. Zulässige Werte: [-_A-Za-z0-9]*.
project
Schnur.
Projekt für die Quelle; wird standardmäßig auf das aktuelle Projekt festgelegt.
source
Schnur.
Name der Pipeline, die das Artefakt erzeugt. Wenn die Pipeline in einem Ordner enthalten ist, schließen Sie den Ordnernamen ein, einschließlich des führenden \
, z. B \security pipelines\security-lib-ci
. . Bei dieser Eigenschaft wird die Groß-/Kleinschreibung nicht beachtet, und es sind keine Anführungszeichen erforderlich, wenn der Name Leerzeichen enthält. Der Ordnerpfad muss angegeben werden, wenn mehrere Pipelines mit demselben Namen vorhanden sind.
version
Schnur.
Die Anzahl der Pipelineausführungen zum Auswählen des Artefakts ist standardmäßig die letzte erfolgreiche Pipeline in allen Phasen. wird nur für manuelle oder geplante Trigger verwendet.
branch
Schnur.
Branch, um das Artefakt zu wählen. Optional; wird standardmäßig auf alle Branches festgelegt, die nur für manuelle oder geplante Trigger verwendet werden.
tags
Zeichenfolgenliste.
Liste der Tags, die für die Pipeline zum Abrufen von Standardartefakten erforderlich sind. Optional; wird nur für manuelle oder geplante Trigger verwendet.
trigger
resources.pipelines.pipeline.trigger.
Geben Sie keine zum Deaktivieren, true an, um alle Branches einzuschließen, oder verwenden Sie die vollständige Syntax, wie in den folgenden Beispielen beschrieben.
Hinweise
Hinweis
pipeline:
gibt den Namen der Ressourcendatei an. Verwenden Sie die hier definierte Bezeichnung, wenn Sie auf die Pipelineressource aus anderen Teilen der Pipeline verweisen, z. B. wenn Sie Pipelineressourcenvariablen verwenden oder Artefakte herunterladen.
Weitere Informationen zu stages
und tags
im Pipelineressourcentrigger finden Sie unter Pipelinevervollständigungstrigger.
Weitere Informationen zu Pipelineressourcentriggern finden Sie unter Trigger zum Abschließen von Pipelines.
Syntax des Pipelineressourcentriggers
Hinweis
Pipelineabschlusstrigger verwenden die Einstellung Standardbranch für manuelle und geplante Builds, um zu bestimmen, welche Branchversion der Branchfilter einer YAML-Pipeline ausgewertet werden soll, wenn ermittelt wird, ob eine Pipeline als Ergebnis des Abschlusses einer anderen Pipeline ausgeführt werden soll. Standardmäßig verweist diese Einstellung auf die Standardbranch des Repositorys. Weitere Informationen finden Sie unter Trigger zur Pipelinevervollständigung – Überlegungen zu Branchs.
Es gibt mehrere Möglichkeiten, Trigger in einer Pipelineressource zu definieren. Um eine Ausführung auszulösen, wenn eine Ausführung der Pipeline, auf die verwiesen wird, abgeschlossen ist, verwenden Sie trigger: true
.
resources:
pipelines:
- pipeline: source-pipeline
source: TriggeringPipeline
trigger: true
Geben Sie zum Deaktivieren des Pipelineressourcentriggers den Wert an none
.
resources:
pipelines:
- pipeline: source-pipeline
source: TriggeringPipeline
trigger: none
Verwenden Sie zum Konfigurieren von Branchfiltern die vollständige Syntax. Branchfilter können als Liste der einzuschließden Branches oder als Liste von Branches angegeben werden, die mit einer Liste der auszuschließenden Branches kombiniert werden sollen.
Verwenden Sie die folgende trigger
Syntax, um eine Liste der ein- und auszuschließenden Branches anzugeben.
resources:
pipelines:
- pipeline: source-pipeline
source: TriggeringPipeline
trigger:
branches:
include:
- main
- develop
- features/*
exclude:
- features/experimental/*
Wenn Sie eine Liste von Branches ohne Ausschluss angeben möchten, lassen Sie den exclude
Wert aus, oder verwenden Sie die folgende Syntax, um die Liste der Verzweigungen anzugeben, die direkt nach branches
eingeschlossen werden sollen.
resources:
pipelines:
- pipeline: source-pipeline
source: TriggeringPipeline
trigger:
branches:
- main
- develop
Verwenden Sie die folgende trigger
Syntax, um nach Phasen oder Tags zu filtern.
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
Weitere Informationen finden Sie unter Trigger für die Pipelinevervollständigung.
Wichtig
Wenn Sie einen Ressourcentrigger definieren und die zugehörige Pipelineressource aus demselben Repository stammt wie die aktuelle Pipeline, folgt die Auslösung demselben Branch und Commit, bei dem das Ereignis ausgelöst wird. Wenn die Pipelineressource jedoch aus einem anderen Repository stammt, wird die aktuelle Pipeline für den Branch ausgelöst, der durch die Einstellung Standardbranch für manuelle und geplante Builds angegeben ist. Weitere Informationen finden Sie unter Überlegungen zu Branches für Pipeline-Vervollständigungstrigger.
Pipelineressourcenmetadaten als vordefinierte Variablen
Bei jeder Ausführung stehen die Metadaten für eine Pipelineressource für alle Aufträge als die folgenden vordefinierten Variablen zur Verfügung. Diese Variablen sind zur Laufzeit für Ihre Pipeline verfügbar und können daher nicht in Vorlagenausdrücken verwendet werden, die zur Kompilierzeit der Pipeline ausgewertet werden.
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
Wichtig
projectName
ist in den Variablen nicht vorhanden, wenn für die Pipelineressource kein project
Wert angegeben ist. Die project
-Eigenschaft ist optional für Pipelineressourcen, die auf eine Pipeline im selben Projekt verweisen, kann aber bei Bedarf angegeben werden.
Ersetzen Sie durch <Alias>
die ID der Pipelineressource. Für die folgende Pipelineressource lautet die Variable, auf die zugegriffen runID
werden resources.pipeline.source-pipeline.runID
soll.
resources:
pipelines:
- pipeline: source-pipeline
source: TriggeringPipeline
Wenn eine Pipeline von einer ihrer Pipelineressourcen ausgelöst wird, werden die folgenden Variablen zusätzlich zu den Variablen in der vorherigen Liste festgelegt.
Variable | Wert |
---|---|
Build.Reason |
ResourceTrigger |
Resources.TriggeringAlias |
Der Name der Pipelineressource, z source-pipeline . B. aus dem vorherigen Beispiel. |
Resource.TriggeringCategory |
pipeline |
Das folgende Beispiel enthält zwei Pipelineressourcen.
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
Wenn diese Pipeline ausgeführt wird, gibt der erste bash
Task die projectName
der Pipelineressource mit dem Namen source-pipeline
aus, was ist FabrikamFiber
.
Der zweite bash
Task gibt alle für den Task verfügbaren Umgebungsvariablen aus, einschließlich der in diesem Abschnitt beschriebenen Pipelineressourcenvariablen. Das Auflisten von Umgebungsvariablen erfolgt in der Regel nicht in einer Produktionspipeline, kann aber für die Problembehandlung nützlich sein. In diesem Beispiel gibt es zwei Pipelineressourcen, und die Ausgabe enthält die folgenden beiden Zeilen.
RESOURCES_PIPELINE_OTHER-PROJECT-PIPELINE_PROJECTNAME=FabrikamRepo
RESOURCES_PIPELINE_SOURCE-PIPELINE_PROJECTNAME=FabrikamFiber
Hinweis
System- und benutzerdefinierte Variablen werden als Umgebungsvariablen für Ihre Plattform eingefügt. Wenn Variablen in Umgebungsvariablen konvertiert werden, werden Variablennamen groß geschrieben, und Punkte werden in Unterstriche umgewandelt. Der Variablenname any.variable
wird z. B. zu ANY_VARIABLE
.
Weitere Informationen zur Verwendung von Variablen und Variablensyntax finden Sie unter Grundlegendes zur Variablensyntax, Angeben von Bedingungen und Ausdrücken.
Sie können Artefakte aus einer Pipelineressource mithilfe einer download
-Aufgabe nutzen. Weitere Informationen finden Sie im Schlüsselwort (keyword) steps.download.
Beispiele
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/*