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.

triggerresources.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 brancheseingeschlossen 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.runIDsoll.

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

Weitere Informationen