Sdílet prostřednictvím


definice resources.pipelines.pipeline

Pokud máte Azure Pipeline, který vytváří artefakty, může váš kanál využívat artefakty definováním prostředku kanálu. V Azure DevOps Server 2020 a novějších můžete také povolit triggery dokončení kanálu pomocí prostředku kanálu.

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.

Definice, které odkazují na tuto definici: resources.pipelines

Vlastnosti

pipeline Řetězec. Povinný argument jako první vlastnost.
ID prostředku kanálu Přijatelné hodnoty: [-_A-Za-z0-9]*.

project Řetězec.
Projekt pro zdroj; výchozí hodnota aktuálního projektu.

source Řetězec.
Název kanálu, který vytváří artefakt. Pokud je kanál obsažen ve složce, zahrňte název složky, včetně počáteční \, například \security pipelines\security-lib-ci. V této vlastnosti se nerozlišují velká a velká písmena, a pokud název obsahuje mezery, nevyžaduje uvozovky. Pokud existuje více kanálů se stejným názvem, musí být zadána cesta ke složce.

version Řetězec.
Číslo spuštění kanálu pro výběr artefaktu, výchozí hodnota je nejnovější kanál úspěšný ve všech fázích. používá se pouze pro ruční nebo naplánované aktivační události.

branch Řetězec.
Větev pro výběr artefaktu Volitelné; výchozí hodnoty pro všechny větve, které se používají pouze pro ruční nebo naplánované triggery.

tags seznam řetězců.
Seznam značek požadovaných v kanálu k vyzvednutí výchozích artefaktů Volitelné; používá se pouze pro ruční nebo naplánované aktivační události.

triggerresources.pipelines.pipelines.trigger.
Zadejte hodnotu none, která se má zakázat, true, pokud chcete zahrnout všechny větve, nebo použijte úplnou syntaxi, jak je popsáno v následujících příkladech.

Poznámky

Poznámka

pipeline: určuje název prostředku kanálu. Popisek definovaný tady použijte při odkazování na prostředek kanálu z jiných částí kanálu, například při použití proměnných prostředků kanálu nebo stahování artefaktů.

Další informace o stages triggeru prostředku kanálu a tags v tomto tématu najdete v tématu Triggery dokončení kanálu.

Další informace o aktivačních událostech prostředků kanálu najdete v tématu Triggery dokončení kanálu.

Syntaxe triggeru prostředku kanálu

Poznámka

Triggery dokončení kanálu používají nastavení Výchozí větev pro ruční a plánovaná sestavení k určení, která verze větve kanálu YAML filtruje při určování, jestli se má kanál spustit v důsledku dokončení jiného kanálu. Ve výchozím nastavení toto nastavení odkazuje na výchozí větev úložiště. Další informace najdete v tématu Triggery dokončení kanálu – důležité informace o větvích.

Aktivační události v prostředku kanálu můžete definovat několika způsoby. K aktivaci spuštění po dokončení libovolného spuštění odkazovaného kanálu použijte trigger: true.

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

Pokud chcete aktivační událost prostředku kanálu zakázat, zadejte hodnotu none.

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

Pokud chcete konfigurovat filtry větví, použijte úplnou syntaxi. Filtry větví lze zadat jako seznam větví, které se mají zahrnout, nebo jako seznam větví, které se mají zahrnout v kombinaci se seznamem větví, které chcete vyloučit.

Pokud chcete určit seznam větví, které chcete zahrnout a vyloučit, použijte následující trigger syntaxi.

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

Chcete-li zadat seznam větví, které se mají zahrnout, bez vyloučení, vyněžte exclude hodnotu nebo pomocí následující syntaxe určete seznam větví, které mají být zahrnuty přímo za branches.

resources:
  pipelines:
  - pipeline: source-pipeline
    source: TriggeringPipeline
    trigger:
      branches:
      - main
      - develop

Pokud chcete filtrovat podle fází nebo značek, použijte následující trigger syntaxi.

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

Další informace najdete v tématu Triggery dokončení kanálu.

Důležité

Když definujete aktivační událost prostředku a jeho prostředek kanálu je ze stejného úložiště jako aktuální kanál, aktivace se řídí stejnou větví a potvrzením, na kterém je událost vyvolána. Pokud je ale prostředek kanálu z jiného úložiště, aktuální kanál se aktivuje ve větvi určené nastavením Výchozí větev pro ruční a plánovaná sestavení . Další informace najdete v tématu Důležité informace o větvích pro triggery dokončení kanálu.

Metadata prostředků kanálu jako předdefinované proměnné

V každém spuštění jsou metadata pro prostředek kanálu k dispozici pro všechny úlohy jako následující předdefinované proměnné. Tyto proměnné jsou pro váš kanál k dispozici za běhu, a proto je nelze použít ve výrazech šablon, které se vyhodnocují při kompilaci kanálu.

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

Důležité

projectName není v proměnných k dispozici, pokud prostředek kanálu nemá zadanou project hodnotu. Vlastnost project je volitelná pro prostředky kanálu, které odkazují na kanál ve stejném projektu, ale v případě potřeby může být zadána.

Nahraďte <Alias> ID prostředku kanálu. Pro následující prostředek kanálu je resources.pipeline.source-pipeline.runIDproměnná pro přístup runID .

resources:
  pipelines:
  - pipeline: source-pipeline
    source: TriggeringPipeline

Když je kanál aktivován jedním z jeho prostředků kanálu, jsou kromě proměnných v předchozím seznamu nastaveny následující proměnné.

Proměnná Hodnota
Build.Reason ResourceTrigger
Resources.TriggeringAlias Název prostředku kanálu, například source-pipeline z předchozího příkladu.
Resource.TriggeringCategory pipeline

Následující příklad obsahuje dva prostředky kanálu.

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

Pokud je tento kanál spuštěný, první bash úloha vypíše projectName výstup prostředku kanálu s názvem source-pipeline, což je FabrikamFiber.

Druhý bash úkol vypíše všechny proměnné prostředí dostupné pro úkol, včetně proměnných prostředků kanálu popsaných v této části. Výpis proměnných prostředí se obvykle neprodává v produkčním kanálu, ale může být užitečný při řešení potíží. V tomto příkladu jsou dva prostředky kanálu a výstup obsahuje následující dva řádky.

RESOURCES_PIPELINE_OTHER-PROJECT-PIPELINE_PROJECTNAME=FabrikamRepo
RESOURCES_PIPELINE_SOURCE-PIPELINE_PROJECTNAME=FabrikamFiber

Poznámka

Systémové a uživatelem definované proměnné se vloží jako proměnné prostředí pro vaši platformu. Při převodu proměnných na proměnné prostředí se názvy proměnných změní na velká písmena a tečky se změní na podtržítka. Název proměnné any.variable se například změní na ANY_VARIABLE.

Další informace o používání proměnných a syntaxe proměnných najdete v tématech Vysvětlení syntaxe proměnných, Zadání podmínek a Výrazů.

Artefakty ze zdroje kanálu můžete využívat pomocí download úlohy. Podívejte se na klíčové slovo steps.download .

Příklady

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

Viz také