Delen via


resources.pipelines.pipeline definition

Als u een Azure-pijplijn hebt die artefacten produceert, kan uw pijplijn de artefacten gebruiken door een pijplijnresource te definiëren. In Azure DevOps Server 2020 en hoger kunt u ook triggers voor het voltooien van pijplijnen inschakelen met behulp van een pijplijnresource.

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.

Definities die verwijzen naar deze definitie: resources.pipelines

Eigenschappen

pipeline tekenreeks. Vereist als eerste eigenschap.
-id van de pijplijnresource. Acceptabele waarden: [-_A-Za-z0-9]*.

project tekenreeks.
Project voor de bron; is standaard ingesteld op het huidige project.

source tekenreeks.
naam van de pijplijn die het artefact produceert. Als de pijplijn zich in een map bevindt, neemt u de mapnaam op, inclusief de voorloop-\, bijvoorbeeld \security pipelines\security-lib-ci. Deze eigenschap is niet hoofdlettergevoelig en heeft geen aanhalingstekens nodig als de naam spaties bevat. Het mappad moet worden opgegeven als er meerdere pijplijnen met dezelfde naam zijn.

version tekenreeks.
Het nummer van de pijplijnuitvoering om het artefact te kiezen, wordt standaard ingesteld op de meest recente pijplijn in alle fasen; alleen gebruikt voor handmatige of geplande triggers.

branch tekenreeks.
Branch om het artefact te kiezen. Facultatief; standaard ingesteld op alle vertakkingen, alleen gebruikt voor handmatige of geplande triggers.

tags lijst met tekenreeksen.
lijst met tags die vereist zijn voor de pijplijn om standaardartefacten op te halen. Facultatief; alleen gebruikt voor handmatige of geplande triggers.

trigger resources.pipelines.pipeline.trigger.
Geef geen op om uit te schakelen, waar om alle vertakkingen op te nemen of gebruik de volledige syntaxis, zoals beschreven in de volgende voorbeelden.

Opmerkingen

Notitie

pipeline: geeft de naam van de pijplijnresource op. Gebruik het label dat hier is gedefinieerd wanneer u verwijst naar de pijplijnresource uit andere onderdelen van de pijplijn, zoals bij het gebruik van pijplijnresourcevariabelen of het downloaden van artefacten.

Zie triggers voor pijplijnvoltooiingvoor meer informatie over stages en tags in de pijplijnresourcetrigger.

Zie triggers voor pijplijnvoltooiingvoor meer informatie over pijplijnresourcetriggers.

Syntaxis van pijplijnresourcetrigger

Notitie

Triggers voor het voltooien van pijplijnen gebruiken de instelling Standaardvertakking voor handmatige en geplande builds om te bepalen welke versie van de vertakkingsfilters van een YAML-pijplijn moet worden geëvalueerd bij het bepalen of een pijplijn moet worden uitgevoerd als gevolg van het voltooien van een andere pijplijn. Deze instelling verwijst standaard naar de standaardbranch van de opslagplaats. Zie Triggers voor het voltooien van pijplijnen voor meer informatie: overwegingen voor vertakkingen.

Er zijn verschillende manieren om triggers in een pijplijnresource te definiëren. Als u een uitvoering wilt activeren wanneer een uitvoering van de pijplijn waarnaar wordt verwezen, gebruikt u trigger: true.

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

Als u de pijplijnresourcetrigger wilt uitschakelen, geeft u een waarde van noneop.

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

Gebruik de volledige syntaxis om vertakkingsfilters te configureren. Vertakkingsfilters kunnen worden opgegeven als een lijst met vertakkingen die moeten worden opgenomen, of als een lijst met vertakkingen die moeten worden opgenomen in combinatie met een lijst met vertakkingen die moeten worden uitgesloten.

Als u een lijst wilt opgeven met vertakkingen die moeten worden opgenomen en uitgesloten, gebruikt u de volgende trigger syntaxis.

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

Als u een lijst met vertakkingen wilt opgeven die moeten worden opgenomen, zonder uitsluitingen, laat u de exclude waarde weg of gebruikt u de volgende syntaxis om de lijst met vertakkingen op te geven die direct na branchesmoeten worden opgenomen.

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

Als u wilt filteren op fasen of tags, gebruikt u de volgende trigger syntaxis.

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

Zie Pijplijn-voltooiingstriggersvoor meer informatie.

Belangrijk

Wanneer u een resourcetrigger definieert en de pijplijnresource afkomstig is van dezelfde opslagplaats als de huidige pijplijn, volgt het activeren dezelfde vertakking en voert u door waarop de gebeurtenis wordt gegenereerd. Maar als de pijplijnresource afkomstig is van een andere opslagplaats, wordt de huidige pijplijn geactiveerd op de vertakking die is opgegeven door de Standaardvertakking voor handmatige en geplande builds instelling. Zie Vertakkingsoverwegingen voor triggers voor pijplijnvoltooiingvoor meer informatie.

Metagegevens van pijplijnresources als vooraf gedefinieerde variabelen

In elke uitvoering zijn de metagegevens voor een pijplijnresource beschikbaar voor alle taken als de volgende vooraf gedefinieerde variabelen. Deze variabelen zijn tijdens runtime beschikbaar voor uw pijplijn en kunnen daarom niet worden gebruikt in sjabloonexpressies, die tijdens het compileren van pijplijnen worden geëvalueerd.

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

Belangrijk

projectName niet aanwezig is in de variabelen als de pijplijnresource geen project waarde heeft opgegeven. De eigenschap project is optioneel voor pijplijnbronnen die verwijzen naar een pijplijn in hetzelfde project, maar kunnen desgewenst worden opgegeven.

Vervang <Alias> door de id van de pijplijnresource. Voor de volgende pijplijnresource wordt de variabele voor toegang tot runIDresources.pipeline.source-pipeline.runID.

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

Wanneer een pijplijn wordt geactiveerd door een van de pijplijnbronnen, worden de volgende variabelen ingesteld naast de variabelen in de vorige lijst.

Veranderlijk Waarde
Build.Reason ResourceTrigger
Resources.TriggeringAlias De naam van de pijplijnresource, zoals source-pipeline uit het vorige voorbeeld.
Resources.TriggeringCategory pipeline

Het volgende voorbeeld bevat twee pijplijnbronnen.

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

Wanneer deze pijplijn wordt uitgevoerd, voert de eerste bash taak de projectName uit van de pijplijnresource met de naam source-pipeline, die FabrikamFiberis.

De tweede bash taak voert alle omgevingsvariabelen uit die beschikbaar zijn voor de taak, inclusief de variabelen voor pijplijnresources die in deze sectie worden beschreven. Het vermelden van omgevingsvariabelen wordt doorgaans niet uitgevoerd in een productiepijplijn, maar kan handig zijn voor het oplossen van problemen. In dit voorbeeld zijn er twee pijplijnbronnen en bevat de uitvoer de volgende twee regels.

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

Notitie

Systeem- en door de gebruiker gedefinieerde variabelen worden opgenomen als omgevingsvariabelen voor uw platform. Wanneer variabelen worden omgezet in omgevingsvariabelen, worden de namen van variabelen naar hoofdletters omgezet en worden punten omgezet in onderstrepingstekens. De naam van de variabele any.variable wordt bijvoorbeeld ANY_VARIABLE.

Zie De syntaxis van variabelen begrijpen, Voorwaarden opgevenen expressiesvoor meer informatie over het gebruik van variabelen en de syntaxis van variabelen.

U kunt artefacten van een pijplijnresource gebruiken met behulp van een download taak. Zie het trefwoord steps.download.

Voorbeelden

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

Zie ook