Condividi tramite


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.

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

Vedere anche