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
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Bloccare l'esecuzione di un pod in mancanza di un'artifact attestation di GitHub
Utilizzare il metodo ExceptBy per eseguire operazione di sottrazione tra liste
Disabilitare automaticamente un workflow di GitHub (parte 2)
Eseguire query per recuperare il padre di un record che sfrutta il tipo HierarchyID in Entity Framework
Garantire la provenienza e l'integrità degli artefatti prodotti su GitHub
Disabilitare le run concorrenti di una pipeline di Azure DevOps
Eseguire i worklow di GitHub su runner potenziati
Autenticazione di git tramite Microsoft Entra ID in Azure DevOps
Il nuovo controllo Range di Blazor 9
Cancellare una run di un workflow di GitHub
Gestire eccezioni nei plugin di Semantic Kernel in ASP.NET Core Web API
Ottimizzazione dei block template in Angular 17
I più letti di oggi
- ecco tutte le novità pubblicate sui nostri siti questa settimana: https://aspit.co/wkly buon week-end!
- ecco tutte le novità pubblicate sui nostri siti questa settimana: https://aspit.co/wkly buon week-end!
- ecco tutte le novità pubblicate sui nostri siti questa settimana: https://aspit.co/wkly buon week-end!
- Eseguire query in contemporanea con EF