Dela via


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.

triggerresources.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.runIDvariabeln 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_VARIABLEtill 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/*

Se även