resources.pipelines.pipeline-definition
Om du har en Azure-pipeline som producerar artefakter kan din pipeline använda artefakterna genom att definiera en pipelineresurs. I Azure DevOps Server 2020 och senare kan du även aktivera utlösare för pipeline-slutförande med hjälp av en pipelineresurs.
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.
Definitioner som refererar till den här definitionen: resources.pipelines
Egenskaper
pipeline
Sträng. Krävs som första egenskap.
ID för pipelineresursen. Acceptabla värden: [-_A-Za-z0-9]*.
project
Sträng.
Projekt för källan; som standard till aktuellt projekt.
source
Sträng.
Namnet på pipelinen som producerar artefakten. Om pipelinen finns i en mapp inkluderar du mappnamnet, inklusive det inledande \
, till exempel \security pipelines\security-lib-ci
. Den här egenskapen är inte skiftlägeskänslig och behöver inte citattecken om namnet innehåller blanksteg. Mappsökvägen måste anges om det finns flera pipelines med samma namn.
version
Sträng.
Pipelinekörningsnumret för att välja artefakten är som standard den senaste pipelinen lyckades i alla faser. används endast för manuella eller schemalagda utlösare.
branch
Sträng.
Gren för att välja artefakten. Valfri; standardvärdet är alla grenar, som endast används för manuella eller schemalagda utlösare.
tags
stränglista.
Lista över taggar som krävs i pipelinen för att hämta standardartefakter. Valfri; används endast för manuella eller schemalagda utlösare.
trigger
resources.pipelines.pipeline.trigger.
Ange ingen som ska inaktiveras, sant om du vill inkludera alla grenar eller använd den fullständiga syntaxen enligt beskrivningen i följande exempel.
Kommentarer
Anteckning
pipeline:
anger namnet på pipelineresursen. Använd etiketten som definieras här när du refererar till pipelineresursen från andra delar av pipelinen, till exempel när du använder pipelineresursvariabler eller laddar ned artefakter.
Mer information om stages
och tags
i pipelineresursutlösaren finns i utlösare för pipeline-slutförande.
Mer information om pipelineresursutlösare finns i utlösare för pipeline-slutförande.
Syntax för pipelineresursutlösare
Anteckning
Pipeline-slutförandeutlösare använder standardgrenen för manuella och schemalagda byggen för att avgöra vilken grens version av en YAML-pipelines grenfilter som ska utvärderas när du fastställer om en pipeline ska köras till följd av att en annan pipeline slutförs. Som standard pekar den här inställningen på standardgrenen för lagringsplatsen. Mer information finns i Pipeline-slutförandeutlösare – branchöverväganden.
Det finns flera sätt att definiera utlösare i en pipelineresurs. Om du vill utlösa en körning när en körning av den refererade pipelinen har slutförts använder du trigger: true
.
resources:
pipelines:
- pipeline: source-pipeline
source: TriggeringPipeline
trigger: true
Om du vill inaktivera pipelineresursutlösaren anger du värdet none
.
resources:
pipelines:
- pipeline: source-pipeline
source: TriggeringPipeline
trigger: none
Om du vill konfigurera grenfilter använder du den fullständiga syntaxen. Grenfilter kan anges som en lista över grenar som ska inkluderas, eller som en lista över grenar som ska inkluderas i kombination med en lista över grenar som ska undantas.
Om du vill ange en lista över grenar som ska inkluderas och exkluderas använder du följande trigger
syntax.
resources:
pipelines:
- pipeline: source-pipeline
source: TriggeringPipeline
trigger:
branches:
include:
- main
- develop
- features/*
exclude:
- features/experimental/*
Om du vill ange en lista över grenar som ska inkluderas, utan undantag, utelämnar exclude
du värdet eller använder följande syntax för att ange listan över grenar som ska inkluderas direkt efter branches
.
resources:
pipelines:
- pipeline: source-pipeline
source: TriggeringPipeline
trigger:
branches:
- main
- develop
Om du vill filtrera efter faser eller taggar använder du följande trigger
syntax.
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
Mer information finns i Pipeline-slutförandeutlösare.
Viktigt
När du definierar en resursutlösare, om dess pipelineresurs kommer från samma lagringsplats som den aktuella pipelinen, följer utlösaren samma gren och incheckning som händelsen aktiveras på. Men om pipelineresursen kommer från en annan lagringsplats utlöses den aktuella pipelinen på den gren som anges av standardgrenen för manuella och schemalagda byggen . Mer information finns i Branch considerations for pipeline completion triggers (Grenöverväganden för pipeline-slutförandeutlösare).
Pipelineresursmetadata som fördefinierade variabler
I varje körning är metadata för en pipelineresurs tillgängliga för alla jobb som följande fördefinierade variabler. Dessa variabler är tillgängliga för din pipeline vid körning och kan därför inte användas i malluttryck, som utvärderas vid pipelinekompilering.
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
Viktigt
projectName
finns inte i variablerna om pipelineresursen inte har något project
angivet värde. Egenskapen project
är valfri för pipelineresurser som refererar till en pipeline i samma projekt, men kan anges om så önskas.
Ersätt <Alias>
med ID:t för pipelineresursen. För följande pipelineresurs är resources.pipeline.source-pipeline.runID
variabeln för åtkomst runID
.
resources:
pipelines:
- pipeline: source-pipeline
source: TriggeringPipeline
När en pipeline utlöses av en av dess pipelineresurser anges följande variabler utöver variablerna i föregående lista.
Variabel | Värde |
---|---|
Build.Reason |
ResourceTrigger |
Resources.TriggeringAlias |
Namnet på pipelineresursen, till exempel source-pipeline från föregående exempel. |
Resource.TriggeringCategory |
pipeline |
I följande exempel finns två pipelineresurser.
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
När den här pipelinen körs matar den första bash
aktiviteten ut projectName
för pipelineresursen med namnet source-pipeline
, som är FabrikamFiber
.
Den andra bash
aktiviteten matar ut alla miljövariabler som är tillgängliga för aktiviteten, inklusive pipelineresursvariablerna som beskrivs i det här avsnittet. Att lista miljövariabler görs vanligtvis inte i en produktionspipeline, men det kan vara användbart för felsökning. I det här exemplet finns det två pipelineresurser och utdata innehåller följande två rader.
RESOURCES_PIPELINE_OTHER-PROJECT-PIPELINE_PROJECTNAME=FabrikamRepo
RESOURCES_PIPELINE_SOURCE-PIPELINE_PROJECTNAME=FabrikamFiber
Anteckning
System- och användardefinierade variabler matas in som miljövariabler för din plattform. När variabler konverteras till miljövariabler blir variabelnamn versaler och punkter förvandlas till understreck. Variabelnamnet any.variable
blir ANY_VARIABLE
till exempel .
Mer information om hur du använder variabler och variabelsyntax finns i Förstå variabelsyntax, Ange villkor och Uttryck.
Du kan använda artefakter från en pipelineresurs med hjälp av en download
aktivitet. Se nyckelordet steps.download .
Exempel
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/*