resources.pipelines.pipeline definition
Se si dispone di un oggetto Azure Pipeline 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 i 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.
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.
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; impostazione predefinita per 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 l'elemento iniziale \
, ad esempio \security pipelines\security-lib-ci
. Questa proprietà non è 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.
Numero di esecuzione della pipeline per selezionare l'artefatto, impostazione predefinita per la pipeline più recente riuscita in tutte le fasi; usato solo per trigger manuali o pianificati.
branch
Stringa.
Ramo per selezionare l'artefatto. Opzionale; impostazione predefinita per tutti i rami, usata solo per i trigger manuali o pianificati.
tags
elenco di stringhe.
Elenco di tag necessari nella pipeline per recuperare gli artefatti predefiniti. Opzionale; usato solo per trigger manuali o pianificati.
trigger
resources.pipelines.pipeline.trigger.
Specificare nessuno per disabilitare, true per includere tutti i rami o usare la sintassi completa come descritto negli esempi seguenti.
Commenti
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 artefatti.
Per altre informazioni su stages
e tags
nel trigger di risorse della pipeline, vedere trigger di completamento della pipeline.
Per altre informazioni sui trigger delle risorse della pipeline, vedere trigger di completamento della pipeline.
Sintassi del trigger di risorse della pipeline
Nota
I trigger di completamento della pipeline usano l'impostazione Predefinita per le compilazioni manuali e pianificate per determinare la versione di un ramo di una pipeline YAML per valutare 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 quando viene completata qualsiasi esecuzione della pipeline a cui si fa riferimento, usare trigger: true
.
resources:
pipelines:
- pipeline: source-pipeline
source: TriggeringPipeline
trigger: true
Per disabilitare il trigger della risorsa della pipeline, specificare un valore di none
.
resources:
pipelines:
- pipeline: source-pipeline
source: TriggeringPipeline
trigger: none
Per configurare i filtri di ramo, usare la sintassi completa. I filtri ramo 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, usare la sintassi seguente trigger
.
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 exclude
valore o usare la sintassi seguente per specificare l'elenco di rami da includere direttamente in seguito branches
.
resources:
pipelines:
- pipeline: source-pipeline
source: TriggeringPipeline
trigger:
branches:
- main
- develop
Per filtrare in base a fasi o tag, usare la sintassi seguente trigger
.
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 risorse, se la relativa risorsa pipeline proviene dallo stesso repository della pipeline corrente, il trigger 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 predefinito per le compilazioni manuali e pianificate . Per altre informazioni, vedere Considerazioni sui rami 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 variabili predefinite seguenti. Queste variabili sono disponibili per la pipeline in fase di esecuzione e pertanto non possono essere usate nelle espressioni di modello, 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 ha un project
valore specificato. La project
proprietà è facoltativa per le risorse della pipeline che fanno riferimento a una pipeline nello stesso progetto, ma possono essere specificate se desiderate.
Sostituire <Alias>
con l'ID della risorsa della pipeline. Per la risorsa pipeline seguente, la variabile da accedere runID
è resources.pipeline.source-pipeline.runID
.
resources:
pipelines:
- pipeline: source-pipeline
source: TriggeringPipeline
Quando una pipeline viene attivata da una delle relative 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 dall'esempio precedente. |
Resource.TriggeringCategory |
pipeline |
Nell'esempio seguente sono disponibili 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
Whe questa pipeline viene eseguita, la prima bash
attività restituisce l'oggetto projectName
della risorsa della pipeline denominata source-pipeline
, ovvero FabrikamFiber
.
La seconda bash
attività restituisce tutte le variabili di ambiente disponibili per l'attività, incluse le variabili di risorsa della pipeline descritte in questa sezione. La presentazione delle variabili di ambiente non viene in genere eseguita 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 dall'utente e di sistema 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 periodi diventano caratteri di sottolineatura. Ad esempio, il nome any.variable
della variabile diventa ANY_VARIABLE
.
Per altre informazioni sull'uso di variabili e sintassi delle variabili, vedere Comprendere la sintassi delle variabili, Specificare le condizioni e le espressioni.
È possibile usare 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/*