Freigeben über


resources.pipelines.pipeline definition

Wenn Sie über eine Azure-Pipeline verfügen, die Artefakte erzeugt, kann Ihre Pipeline die Artefakte nutzen, indem Sie eine Pipelineressource definieren. In Azure DevOps Server 2020 und höher können Sie auch Pipelineabschlusstrigger 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.

Definitionen, die auf diese Definition verweisen: resources.pipelines

Eigenschaften

pipeline Zeichenfolge. Erforderlich als erste Eigenschaft.
ID der Pipelineressource. Zulässige Werte: [-_A-Za-z0-9]*.

project Zeichenfolge.
Projekt für die Quelle; Ist standardmäßig auf das aktuelle Projekt festgelegt.

source Zeichenfolge.
Name der Pipeline, die das Artefakt erzeugt. Wenn die Pipeline in einem Ordner enthalten ist, schließen Sie den Ordnernamen ein, einschließlich der führenden \, z. B. \security pipelines\security-lib-ci. Bei dieser Eigenschaft wird die Groß-/Kleinschreibung nicht beachtet, und es werden keine Anführungszeichen benötigt, wenn der Name Leerzeichen enthält. Der Ordnerpfad muss angegeben werden, wenn mehrere Pipelines mit demselben Namen vorhanden sind.

version Zeichenfolge.
Die Pipelinelaufnummer, um das Artefakt zu wählen, ist standardmäßig die neueste Pipeline erfolgreich in allen Phasen; wird nur für manuelle oder geplante Trigger verwendet.

branch Zeichenfolge.
Branch aus, um das Artefakt zu wählen. Wahlfrei; Standardmäßig werden alle Verzweigungen verwendet, 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. Wahlfrei; wird nur für manuelle oder geplante Trigger verwendet.

trigger resources.pipelines.pipeline.trigger.
Angeben, dass keine deaktiviert werden soll, "true", um alle Verzweigungen einzuschließen, oder verwenden Sie die vollständige Syntax, wie in den folgenden Beispielen beschrieben.

Bemerkungen

Hinweis

pipeline: gibt den Namen der Pipelineressource an. Verwenden Sie die hier definierte Bezeichnung, wenn Sie auf die Pipelineressource aus anderen Teilen der Pipeline verweisen, z. B. beim Verwenden von Pipelineressourcenvariablen oder beim Herunterladen von Artefakten.

Weitere Informationen zu stages und tags im Pipelineressourcentrigger finden Sie unter Pipelineabschlusstrigger.

Weitere Informationen zu Pipelineressourcentriggern finden Sie unter Pipelinevervollständigungstrigger.

Syntax für Pipelineressourcentrigger

Hinweis

Auslöser für den Pipelineabschluss verwenden den Default Branch für manuelle und geplante Builds Einstellung, um zu bestimmen, welche Verzweigungsversion der Verzweigungsfilter einer YAML-Pipeline ausgewertet werden soll, wenn ermittelt wird, ob eine Pipeline als Ergebnis einer anderen Pipeline abgeschlossen wird. Standardmäßig verweist diese Einstellung auf den Standardverzweigung des Repositorys. Weitere Informationen finden Sie unter Pipelineabschlusstrigger – Branch-Überlegungen.

Es gibt mehrere Möglichkeiten zum Definieren von Triggern in einer Pipelineressource. Um eine Ausführung auszulösen, wenn eine Ausführung der referenzierten Pipeline abgeschlossen ist, verwenden Sie trigger: true.

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

Um den Pipelineressourcentrigger zu deaktivieren, geben Sie einen Wert von nonean.

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

Verwenden Sie die vollständige Syntax, um Verzweigungsfilter zu konfigurieren. Verzweigungsfilter können als Eine Liste von Filialen angegeben werden, die eingeschlossen werden sollen, oder als Eine Liste von Zweigniederlassungen, die zusammen mit einer Liste der auszuschließenden Verzweigungen eingeschlossen werden sollen.

Verwenden Sie die folgende trigger Syntax, um eine Liste von Zweigniederlassungen anzugeben, die eingeschlossen und ausgeschlossen werden sollen.

resources:
  pipelines:
  - pipeline: source-pipeline
    source: TriggeringPipeline
    trigger:
      branches:
        include:
        - main
        - develop
        - features/*
        exclude:
        - features/experimental/*

Wenn Sie eine Liste der einzuschließenden Verzweigungen 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 Pipelineabschlusstrigger.

Wichtig

Wenn Sie einen Ressourcenauslöser definieren, erfolgt die Auslösung der Pipelineressource aus demselben Repository wie die aktuelle Pipeline, und das Auslösen folgt demselben Verzweigung und commit, für den das Ereignis ausgelöst wird. Wenn die Pipelineressource jedoch aus einem anderen Repository stammt, wird die aktuelle Pipeline auf der verzweigt, die durch die Standardverzweigung für manuelle und geplante Builds Einstellung ausgelöst wird. Weitere Informationen finden Sie unter Branch-Überlegungen für Pipelineabschlusstrigger.

Pipelineressourcenmetadaten als vordefinierte Variablen

In jeder Ausführung sind die Metadaten für eine Pipelineressource für alle Aufträge als die folgenden vordefinierten Variablen verfügbar. Diese Variablen sind zur Laufzeit für Ihre Pipeline verfügbar und können daher nicht in Vorlagenausdrückeverwendet werden, die zur Pipelinekompilierungszeit 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 eigenschaft project ist optional für Pipelineressourcen, die auf eine Pipeline im selben Projekt verweisen, aber ggf. angegeben werden können.

Ersetzen Sie <Alias> durch die ID der Pipelineressource. Für die folgende Pipelineressource ist die Variable für den Zugriff auf runIDresources.pipeline.source-pipeline.runID.

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. B. source-pipeline aus dem vorherigen Beispiel.
Resources.TriggeringCategory pipeline

Im folgenden Beispiel sind zwei Pipelineressourcen vorhanden.

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

Whe diese Pipeline ausgeführt wird, gibt der erste bash Vorgang die projectName der Pipelineressource namens source-pipelineaus, die FabrikamFiberist.

Der zweite bash Vorgang gibt alle Umgebungsvariablen aus, die für den Vorgang verfügbar sind, 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 hilfreich 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 in Großbuchstaben umgewandelt, und Punkte werden in Unterstriche umgewandelt. Beispielsweise wird der Variablenname any.variable zu ANY_VARIABLE.

Weitere Informationen zur Verwendung von Variablen und Variablensyntax finden Sie unter Grundlegendes zur Variablensyntax, Angeben von Bedingungenund Ausdrücken.

Sie können Artefakte aus einer Pipelineressource mithilfe eines download Vorgangs nutzen. Weitere Informationen finden Sie in den steps.download Schlüsselworts.

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

Siehe auch