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