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.
trigger
resources.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_VARIABLE
się .
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/*