Specificare gli eventi che attivano le pipeline

servizi Azure DevOps | Azure DevOps Server | Azure DevOps Server 2022

Un trigger di una pipeline stabilisce quando una pipeline deve essere eseguita. È possibile configurare un trigger per eseguire una pipeline in base a una pianificazione o in risposta a un evento, ad esempio la creazione di una richiesta pull. Azure Pipelines supporta i tipi di trigger seguenti:

  • I trigger di integrazione continua (trigger CI) eseguono una pipeline quando si esegue il push del codice in un ramo.
  • I trigger delle richieste pull (trigger PR) eseguono una pipeline quando si crea una PR o si effettua il push del codice nel ramo di origine di una PR aperta. I repository GitHub supportano trigger basati sui commenti che eseguono una pipeline quando aggiungi commenti su una pull request aperta.
  • I trigger pianificati eseguono una pipeline secondo una pianificazione predefinita.
  • I trigger di completamento delle pipeline attivano una pipeline quando un'altra pipeline viene completata.

Questo articolo offre una panoramica dei trigger della pipeline YAML e dei trigger della pipeline di compilazione classica . Le pipeline di rilascio classiche hanno versioni simili dei trigger descritti in precedenza. Per ulteriori informazioni, vedi Fattori di attivazione della pipeline di rilascio classica.

Trigger di CI

I trigger CI attivano una pipeline quando viene effettuato un push a un ramo che soddisfa i criteri definiti dal trigger. Usare la trigger parola chiave per configurare un trigger CI. Ad esempio, per eseguire una pipeline quando viene effettuato un push nel ramo main, specificare il trigger seguente.

trigger:
- main

Se non configuri esplicitamente la pipeline, i trigger CI sono abilitati per tutti i rami per impostazione predefinita, a meno che non sia impostato Disable implied CI trigger o che UI settings override YAML trigger.

Se non configuri esplicitamente la pipeline, i trigger CI sono abilitati per tutti i rami per impostazione predefinita, a meno che non sia impostato Disable implied CI trigger o che UI settings override YAML trigger.

Nota

Disable Implicit CI trigger è disponibile solo in Azure DevOps Server 2022.2 e versioni successive. In Azure DevOps Server 2022 e 2022.1, i trigger CI sono abilitati per impostazione predefinita se non sono configurati in modo esplicito.

Per disabilitare i trigger CI nella pipeline, usare la sintassi seguente.

trigger: none

Le pipeline YAML supportano i trigger CI per i tipi di repository seguenti. Per informazioni specifiche sull'uso di trigger CI con un tipo di repository specifico, vedere gli articoli seguenti.

Per informazioni sulla sintassi completa del trigger YAML e sulle opzioni disponibili per i trigger CI, vedere Definizione del trigger.

Importante

I percorsi in Git fanno distinzione tra maiuscole e minuscole, inclusi i filtri di percorso del trigger CI e PR.

Trigger di richiesta pull

I trigger delle pull request (PR) attivano una pipeline ogni volta che si apre una pull request o quando si esegue il push delle modifiche al branch di origine di una pull request. Usare la parola chiave pr per configurare un trigger PR. Ad esempio, per eseguire una pipeline quando viene aperta una PR nel ramo main, specificare il trigger seguente.

pr:
- main

Se non si configurano esplicitamente i trigger delle pull request nella pipeline, sono abilitati per impostazione predefinita, a meno che le impostazioni dell'interfaccia utente non sovrascrivano il trigger YAML. Le pull request verso qualsiasi ramo avviano una pipeline. Per disabilitare i trigger PR nella tua pipeline, usa la sintassi seguente.

pr: none

I trigger YAML per le pull request sono supportati da GitHub e Bitbucket Cloud. Per ulteriori informazioni sull'uso dei trigger PR con questi tipi di repository, vedere i trigger PR in GitHub e trigger PR in Bitbucket Cloud. Per informazioni sulla sintassi completa del trigger YAML della pull request, vedere definizione di PR.

Azure Repos Git usa i criteri dei rami per implementare i trigger delle PR. Per altre informazioni, vedere trigger PR in Azure Repos Git.

Attivatori di commento

I trigger di commento configurano una pipeline da eseguire quando i collaboratori effettuano un commento di richiesta pull contenente un comando di richiesta pull, ad esempio /azp run. I trigger di commento sono supportati solo per i repository GitHub. Per ulteriori informazioni, consulta trigger dei commenti del repository GitHub.

Attivazioni pianificate

I trigger pianificati eseguono una pipeline secondo una pianificazione predefinita. Tutti i tipi di repository che supportano le pipeline YAML supportano i trigger pianificati nelle pipeline YAML. Questi tipi di repository includono Azure Repos Git, GitHub, GitHub Enterprise Server e Bitbucket Cloud.

Per definire un trigger pianificato in YAML, usa la parola chiave schedules e definisci la pianificazione utilizzando la sintassi cron. Nell'esempio seguente viene configurata una pianificazione eseguita ogni giorno a mezzanotte.

# YAML file in the main branch
schedules:
- cron: '0 0 * * *'
  displayName: Daily midnight build
  branches:
    include:
    - main

Per ulteriori informazioni ed esempi, consulta trigger pianificati, definizione delle pianificazioni e definizione di schedules.cron.

Attivatori al completamento della pipeline

Trigger delle pipeline nelle pipeline YAML e trigger di completamento della compilazione nelle pipeline di compilazione classiche consentono di attivare una pipeline al termine di un'altra.

Configurare un trigger della risorsa pipeline nella pipeline per avviare un'esecuzione quando la pipeline di origine completa un'esecuzione.

resources:
  pipelines:
  - pipeline: sourcePipelineResource # Label for this pipeline resource; used when referring to it elsewhere in the pipeline.
    source: source-pipeline # The name of the pipeline referenced by this pipeline resource.
    project: FabrikamProject # Required only if the source pipeline is in another project
    trigger: true # Run this pipeline when any run of source-pipeline completes

È possibile aggiungere più risorse pipeline alla pipeline. È possibile configurare il trigger da eseguire al termine di qualsiasi versione della pipeline di origine oppure limitarlo a determinati rami.

Per altre informazioni ed esempi, vedere Trigger di completamento della pipeline.

Per la sintassi completa e le opzioni di trigger, vedere resources.pipelines.pipeline definition(Definizione di resources.pipelines.pipeline).

Considerazioni sui branch per i trigger nelle pipeline YAML

Le pipeline YAML possono avere versioni diverse della pipeline in rami diversi, che possono influire sulla versione dei trigger della pipeline valutata e sulla versione della pipeline da eseguire.

Tipo di attivazione Versione YAML della pipeline
Attivatori CI (trigger) Viene usata la versione della pipeline del ramo di cui è stato eseguito il push.
Trigger di richiesta pull (pr) Viene utilizzata la versione della pipeline nel ramo di origine per la pull request.
Trigger dei commenti delle pull request di GitHub Viene utilizzata la versione della pipeline nel ramo di origine per la pull request.
Attivazioni pianificate Vedi Considerazioni sui rami per i trigger pianificati.
Attivatori al completamento della pipeline Vedere Considerazioni relative ai branch per i trigger di completamento della pipeline.

Trigger di risorse per le pipeline YAML

I trigger delle risorse del repository consentono di avviare una pipeline quando le modifiche vengono apportate in un repository definito come repositories risorsa. Configurare filtri in stile trigger CI per la risorsa in modo che i commit o le richieste pull in un repository Git Azure Repos esterno, GitHub, GitHub Enterprise o Bitbucket Cloud possano avviare le esecuzioni della pipeline corrente.

Azure Pipelines supporta trigger basati su eventi simili in altri tipi di risorse:

  • pipelines: al completamento di una pipeline CI upstream (con filtri facoltativi branch, tag e stage)
  • builds: sui nuovi artefatti da un sistema ci esterno, ad esempio Jenkins
  • containers: sui nuovi tag di immagine in Registro Azure Container
  • packages: in nuove versioni del pacchetto NuGet o npm GitHub
  • webhooks: su eventi arbitrari da servizi esterni come GitHub, Nexus o Artifactory tramite una connessione al servizio webhook in ingresso

Per altre informazioni, vedere Risorse nelle pipeline YAML.

Trigger basati su webhook generici per le pipeline YAML

Il supporto del trigger webhook nelle pipeline YAML consente di sottoscrivere eventi da qualsiasi servizio esterno (ad esempio GitHub, GitHub Enterprise, Nexus o Artifactory) tramite i webhook e attivare automaticamente le pipeline. Questa funzionalità espande i trigger automatizzati oltre alle risorse predefinite, ad esempio pipeline, contenitori, compilazioni e pacchetti. È possibile integrare l'automazione della pipeline con qualsiasi servizio esterno.

Per usare questa funzionalità, definire una webhook risorsa resources.webhooks nella pipeline YAML e puntare a una connessione al servizio webhook in ingresso che sottoscrive l'evento. È possibile aggiungere filtri rispetto al payload JSON per ottimizzare l'esecuzione di ogni pipeline e accedere ai valori del payload come variabili nei processi.

resources:
  webhooks:
    - webhook: MyWebhookTrigger          ### Webhook alias
      connection: MyWebhookConnection    ### Incoming webhook service connection
      filters:
        - path: repositoryName      ### JSON path in the payload
          value: maven-releases     ### Expected value in the path provided
        - path: action
          value: CREATED
steps:
- task: PowerShell@2
  inputs:
    targetType: 'inline'
    ### JSON payload data is available in the form of ${{ parameters.<WebhookAlias>.<JSONPath>}}
    script: |
      Write-Host ${{ parameters.MyWebhookTrigger.repositoryName}}
      Write-Host ${{ parameters.MyWebhookTrigger.component.group}}

Per altre informazioni, vedere Trigger generici basati su webhook per le pipeline YAML e la definizione resources.webhooks.webhook.

Pipeline di rilascio classiche

I trigger di distribuzione continua consentono di avviare le versioni classiche al termine di una pipeline YAML o di compilazione classica.

I trigger di rilascio pianificati consentono di eseguire una pipeline di rilascio secondo una pianificazione.

I trigger di rilascio delle richieste pull vengono usati per distribuire una richiesta pull direttamente usando le versioni classiche.

I trigger di fase nella versione classica vengono usati per configurare la modalità di attivazione di ogni fase in una versione classica.