resources.pipelines.pipeline definition

Jeśli masz usługę Azure Pipeline, która generuje artefakty, potok może korzystać z artefaktów, definiując zasób potoku. W Azure DevOps Server 2020 i nowszych można również włączyć wyzwalacze ukończenia potoku przy użyciu zasobu potoku.

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.

Definicje odwołujące się do tej definicji: resources.pipelines

Właściwości

pipeline Ciąg. Wymagane jako pierwsza właściwość.
Identyfikator zasobu potoku. Dopuszczalne wartości: [-_A-Za-z0-9]*.

project Ciąg.
Projekt dla źródła; wartość domyślna to bieżący projekt.

source Ciąg.
Nazwa potoku, który generuje artefakt. Jeśli potok znajduje się w folderze, dołącz nazwę folderu, w tym wiodącą \wartość , na przykład \security pipelines\security-lib-ci. Ta właściwość nie uwzględnia wielkości liter i nie wymaga cudzysłowów, jeśli nazwa zawiera spacje. Należy określić ścieżkę folderu, jeśli istnieje wiele potoków o tej samej nazwie.

version Ciąg.
Numer uruchomienia potoku, aby wybrać artefakt, domyślnie jest to najnowszy potok zakończony powodzeniem we wszystkich etapach; używane tylko w przypadku wyzwalaczy ręcznych lub zaplanowanych.

branch Ciąg.
Rozgałęzienie, aby wybrać artefakt. Opcjonalne; wartość domyślna dla wszystkich gałęzi, używana tylko w przypadku wyzwalaczy ręcznych lub zaplanowanych.

tags lista ciągów.
Lista tagów wymaganych w potoku do odbioru domyślnych artefaktów. Opcjonalne; używane tylko w przypadku wyzwalaczy ręcznych lub zaplanowanych.

triggerresources.pipelines.pipeline.trigger.
Określ brak do wyłączenia, wartość true, aby uwzględnić wszystkie gałęzie, lub użyć pełnej składni, jak opisano w poniższych przykładach.

Uwagi

Uwaga

pipeline: określa nazwę zasobu potoku. Użyj etykiety zdefiniowanej tutaj podczas odwoływania się do zasobu potoku z innych części potoku, na przykład podczas używania zmiennych zasobów potoku lub pobierania artefaktów.

Aby uzyskać więcej informacji na temat stages wyzwalacza zasobów potoku i tags go, zobacz wyzwalacze uzupełniania potoku.

Aby uzyskać więcej informacji na temat wyzwalaczy zasobów potoku, zobacz wyzwalacze uzupełniania potoku.

Składnia wyzwalacza zasobu potoku

Uwaga

Wyzwalacze uzupełniania potoku używają domyślnej gałęzi dla ustawienia ręcznych i zaplanowanych kompilacji , aby określić, która wersja gałęzi filtrów gałęzi potoku YAML ma być oceniana podczas określania, czy należy uruchomić potok w wyniku ukończenia innego potoku. Domyślnie to ustawienie wskazuje domyślną gałąź repozytorium. Aby uzyskać więcej informacji, zobacz Wyzwalacze uzupełniania potoku — zagadnienia dotyczące gałęzi.

Istnieje kilka sposobów definiowania wyzwalaczy w zasobie potoku. Aby wyzwolić przebieg po zakończeniu dowolnego uruchomienia przywoływnego potoku, użyj polecenia trigger: true.

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

Aby wyłączyć wyzwalacz zasobu potoku, określ wartość none.

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

Aby skonfigurować filtry gałęzi, użyj pełnej składni. Filtry gałęzi można określić jako listę gałęzi do uwzględnienia lub jako listę gałęzi do uwzględnienia w połączeniu z listą gałęzi do wykluczenia.

Aby określić listę gałęzi do uwzględnienia i wykluczenia, użyj następującej trigger składni.

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

Aby określić listę gałęzi do uwzględnienia, bez wykluczeń, pominąć exclude wartość lub użyć następującej składni, aby określić listę gałęzi do uwzględnienia bezpośrednio po branches.

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

Aby filtrować według etapów lub tagów, użyj następującej trigger składni.

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

Aby uzyskać więcej informacji, zobacz Wyzwalacze uzupełniania potoku.

Ważne

Po zdefiniowaniu wyzwalacza zasobu, jeśli jego zasób potoku pochodzi z tego samego repozytorium co bieżący potok, wyzwalanie jest zgodne z tą samą gałęzią i zatwierdzeniem, na którym jest zgłaszane zdarzenie. Jeśli jednak zasób potoku pochodzi z innego repozytorium, bieżący potok jest wyzwalany w gałęzi określonej przez domyślną gałąź dla ustawienia ręcznej i zaplanowanej kompilacji . Aby uzyskać więcej informacji, zobacz Zagadnienia dotyczące gałęzi wyzwalaczy uzupełniania potoku.

Metadane zasobu potoku jako wstępnie zdefiniowane zmienne

W każdym przebiegu metadane zasobu potoku są dostępne dla wszystkich zadań jako następujące wstępnie zdefiniowane zmienne. Te zmienne są dostępne dla potoku w czasie wykonywania i dlatego nie można ich używać w wyrażeniach szablonów, które są oceniane w czasie kompilacji potoku.

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

Ważne

projectName nie jest obecny w zmiennych, jeśli zasób potoku nie ma project określonej wartości. Właściwość jest opcjonalna project dla zasobów potoku odwołujących się do potoku w tym samym projekcie, ale może być określona w razie potrzeby.

Zastąp <Alias> element identyfikatorem zasobu potoku. W przypadku następującego zasobu potoku zmienna runID dostępu to resources.pipeline.source-pipeline.runID.

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

Gdy potok jest wyzwalany przez jeden z zasobów potoku, następujące zmienne są ustawiane oprócz zmiennych na poprzedniej liście.

Zmienna Wartość
Build.Reason ResourceTrigger
Resources.TriggeringAlias Nazwa zasobu potoku, na source-pipeline przykład z poprzedniego przykładu.
Resource.TriggeringCategory pipeline

Poniższy przykład zawiera dwa zasoby potoku.

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 ten potok jest uruchamiany, pierwsze bash zadanie zwraca wartość projectName zasobu potoku o nazwie source-pipeline, czyli FabrikamFiber.

bash Drugie zadanie zwraca wszystkie zmienne środowiskowe dostępne dla zadania, w tym zmienne zasobów potoku opisane w tej sekcji. Wyświetlanie listy zmiennych środowiskowych nie jest zwykle wykonywane w potoku produkcyjnym, ale może być przydatne do rozwiązywania problemów. W tym przykładzie istnieją dwa zasoby potoku, a dane wyjściowe zawierają następujące dwa wiersze.

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

Uwaga

Zmienne systemowe i zdefiniowane przez użytkownika są wstrzykiwane jako zmienne środowiskowe dla platformy. Gdy zmienne są konwertowane na zmienne środowiskowe, nazwy zmiennych stają się wielkie, a kropki zamieniają się w podkreślenia. Na przykład nazwa any.variable zmiennej staje ANY_VARIABLEsię .

Aby uzyskać więcej informacji na temat używania zmiennych i składni zmiennych, zobacz Opis składni zmiennych, Określanie warunków i wyrażeń.

Artefakty z zasobu potoku można używać przy użyciu download zadania. Zobacz słowo kluczowe steps.download .

Przykłady

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

Zobacz też