Condividi tramite


definizione resources.pipelines.pipeline

Se si ha una pipeline di Azure che produce artefatti, la pipeline può usare gli artefatti definendo una risorsa della pipeline. In Azure DevOps Server 2020 e versioni successive è anche possibile abilitare trigger di completamento della pipeline usando una risorsa della 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.
    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.

Definizioni che fanno riferimento a questa definizione: resources.pipelines

Proprietà

pipeline stringa. Obbligatorio come prima proprietà.
ID della risorsa della pipeline. Valori accettabili: [-_A-Za-z0-9]*.

project stringa.
Progetto per l'origine; il valore predefinito è il progetto corrente.

source stringa.
Nome della pipeline che produce l'artefatto. Se la pipeline è contenuta in una cartella, includere il nome della cartella, incluso il \iniziale, ad esempio \security pipelines\security-lib-ci. Questa proprietà non fa distinzione tra maiuscole e minuscole e non richiede virgolette se il nome include spazi. Il percorso della cartella deve essere specificato se sono presenti più pipeline con lo stesso nome.

version stringa.
Il numero di esecuzione della pipeline per selezionare l'artefatto, l'impostazione predefinita è la pipeline più recente riuscita in tutte le fasi; utilizzato solo per trigger manuali o pianificati.

branch stringa.
Branch per selezionare l'artefatto. Opzionale; per impostazione predefinita tutti i rami, usati solo per i trigger manuali o pianificati.

tags elenco di stringhe.
Elenco di tag necessari nella pipeline per recuperare gli artefatti predefiniti. Opzionale; utilizzato solo per trigger manuali o pianificati.

trigger resources.pipelines.pipeline.trigger.
Specificare nessuno da disabilitare, true per includere tutti i rami o usare la sintassi completa come descritto negli esempi seguenti.

Osservazioni:

Nota

pipeline: specifica il nome della risorsa della pipeline. Usare l'etichetta definita qui quando si fa riferimento alla risorsa della pipeline da altre parti della pipeline, ad esempio quando si usano variabili di risorsa della pipeline o si scaricano elementi.

Per altre informazioni su stages e tags nel trigger di risorse della pipeline, vedere trigger di completamento della pipeline.

Per altre informazioni sui trigger di risorse della pipeline, vedere trigger di completamento della pipeline.

Sintassi del trigger di risorse della pipeline

Nota

I trigger di completamento della pipeline usano il ramo predefinito per le compilazioni manuali e pianificate impostazione per determinare la versione del ramo di una pipeline YAML da valutare quando determinare se eseguire una pipeline come risultato del completamento di un'altra pipeline. Per impostazione predefinita, questa impostazione punta al ramo predefinito del repository. Per altre informazioni, vedere Trigger di completamento della pipeline - Considerazioni sui rami.

Esistono diversi modi per definire i trigger in una risorsa della pipeline. Per attivare un'esecuzione al termine di qualsiasi esecuzione della pipeline di riferimento, usare trigger: true.

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

Per disabilitare il trigger della risorsa della pipeline, specificare il valore none.

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

Per configurare i filtri dei rami, usare la sintassi completa. I filtri dei rami possono essere specificati come elenco di rami da includere o come elenco di rami da includere in combinazione con un elenco di rami da escludere.

Per specificare un elenco di rami da includere ed escludere, utilizzare la sintassi trigger seguente.

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

Per specificare un elenco di rami da includere, senza escludere, omettere il valore exclude oppure usare la sintassi seguente per specificare l'elenco dei rami da includere direttamente dopo branches.

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

Per filtrare in base a fasi o tag, usare la sintassi trigger seguente.

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

Per altre informazioni, vedere trigger di completamento della pipeline.

Importante

Quando si definisce un trigger di risorsa, se la risorsa della pipeline proviene dallo stesso repository della pipeline corrente, l'attivazione segue lo stesso ramo e il commit in cui viene generato l'evento. Tuttavia, se la risorsa della pipeline proviene da un repository diverso, la pipeline corrente viene attivata nel ramo specificato dal ramo ramo predefinito per le compilazioni manuali e pianificate impostazione. Per altre informazioni, vedere Considerazioni sul ramo per i trigger di completamento della pipeline.

Metadati delle risorse della pipeline come variabili predefinite

In ogni esecuzione, i metadati per una risorsa della pipeline sono disponibili per tutti i processi come le variabili predefinite seguenti. Queste variabili sono disponibili per la pipeline in fase di esecuzione e pertanto non possono essere usate nelle espressioni modello , che vengono valutate in fase di compilazione della pipeline.

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

Importante

projectName non è presente nelle variabili se la risorsa della pipeline non dispone di un valore project specificato. La proprietà project è facoltativa per le risorse della pipeline che fanno riferimento a una pipeline nello stesso progetto, ma possono essere specificate se necessario.

Sostituire <Alias> con l'ID della risorsa della pipeline. Per la risorsa pipeline seguente, la variabile per accedere al runID è resources.pipeline.source-pipeline.runID.

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

Quando una pipeline viene attivata da una delle risorse della pipeline, le variabili seguenti vengono impostate oltre alle variabili nell'elenco precedente.

Variabile Valore
Build.Reason ResourceTrigger
Resources.TriggeringAlias Nome della risorsa della pipeline, ad esempio source-pipeline dell'esempio precedente.
Resources.TriggeringCategory pipeline

L'esempio seguente include due risorse della pipeline.

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

Quando questa pipeline viene eseguita, la prima attività bash restituisce il projectName della risorsa della pipeline denominata source-pipeline, che è FabrikamFiber.

La seconda attività bash restituisce tutte le variabili di ambiente disponibili per l'attività, incluse le variabili di risorsa della pipeline descritte in questa sezione. L'elenco delle variabili di ambiente non viene in genere eseguito in una pipeline di produzione, ma può essere utile per la risoluzione dei problemi. In questo esempio sono presenti due risorse della pipeline e l'output contiene le due righe seguenti.

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

Nota

Le variabili definite dal sistema e dall'utente vengono inserite come variabili di ambiente per la piattaforma. Quando le variabili vengono convertite in variabili di ambiente, i nomi delle variabili diventano maiuscoli e i punti diventano caratteri di sottolineatura. Ad esempio, il nome della variabile any.variable diventa ANY_VARIABLE.

Per altre informazioni sull'uso delle variabili e della sintassi delle variabili, vedere Informazioni sulla sintassi delle variabili, Specificare condizionie espressioni .

È possibile utilizzare gli artefatti da una risorsa della pipeline usando un'attività download. Vedere la parola chiave steps.download.

Esempi

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

Vedere anche