Triggerare una pipeline su un altro repository di Azure DevOps

di Matteo Tumiati, in DevOps,

Negli scenari in cui vogliamo mantenere il codice delle pipeline (YAML) separato dal codice applicativo, oppure quando necessitiamo di eseguire una pipeline che fa riferimento a codice sorgente che si trova in un altro repository, ad esempio per compilare una libreria, in Azure DevOps possiamo sfruttare i resource triggers, ovvero degli appositi trigger che invocano la pipeline non quando viene fatto un commit nel repository corrente, ma quando avvengono determinate condizioni nelle risorse che mettiamo come riferimento. Vediamone un esempio.

trigger: none

resources:
  repositories:
    - repository: library
      type: git
      name: MyLibraryProject
      ref: main
      trigger:
      - main

steps:
- checkout: self
- checkout: library
- bash: cd MyLibraryProject && cat README.md

In questa semplice pipeline abbiamo specificato che non vogliamo l'esecuzione nel momento in cui ci sono dei commit nel repository corrente. Tuttavia, nel nodo resources, abbiamo dichiarato l'esistenza di un secondo repository, chiamato library e esistente nel repository di Azure DevOps chiamato MyLibraryProject presente nello stesso team project: poiché su questo è impostato un trigger di CI sul branch main, ogni qualvolta che verrà fatto un commit sul branch o mergiata una pull request, allora questo workflow partità automaticamente e farà il checkout di entrambi i repo (sia quello corrente che la library) e quindi stamperà il README.

In questo modo possiamo avere completa separazione tra le pipeline e il codice applicativo, piuttosto che possiamo rendere riutilizzabili dei template delle pipeline in modo alternativo. Dobbiamo però tenere in considerazione che questo trigger verrà eseguito solo nel momento in cui la pipeline definition (ovvero il codice YAML) si trova nel branch di default per quel repository, altrimenti non partirà perché Azure DevOps non è in grado di fare scouting su tutti i branch (dato che potrebbero essere centinaia o migliaia) e poiché non è consentita l'esecuzione dello stesso trigger da più branch in contemporanea.

Commenti

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Approfondimenti

I più letti di oggi