Qual è l'equivalente YAML delle pipeline di rilascio?

Aug 17 2020

Ho esaminato Azure DevOps e qualcosa mi lascia perplesso: sembra che Microsoft stia fortemente raccomandando l'uso di pipeline YAML invece di quelle classiche; abbastanza giusto, ma devono sostituire tutte le funzionalità che erano nelle pipeline classiche. Come intendo sostituire la funzionalità "pipeline di rilascio" con pipeline YAML?

Quindi, ad esempio, con le pipeline di rilascio classiche, potrei configurare una pipeline da distribuire alla produzione che aveva un trigger manuale (vedi "Manualmente da un utente"):

https://docs.microsoft.com/en-us/azure/devops/pipelines/release/triggers?view=azure-devops#pull-request-triggers

Qual è l'equivalente della pipeline YAML? Ovviamente non voglio un trigger che si distribuisca automaticamente alla produzione - desidero sempre che la distribuzione venga avviata rigorosamente manualmente - ma l'articolo della guida non sembra fornire alcuna alternativa YAML.

Risposte

1 LanceLi-MSFT Aug 18 2020 at 03:42

Come commenta Daniel sopra, la pipeline Yaml supporta le pipeline yaml a più stadi per CD. Puoi controllare Azure DevOps Pipelines - Multi-Stage Pipelines e YAML per la consegna continua per maggiori dettagli.

La pipeline multistadio Azure devops yaml e la pipeline di rilascio classico possono essere usate entrambe per CD, tuttavia presentano alcune differenze . E come so, nessuna funzionalità nella pipeline YAML può essere equivalente alla versione manual triggerclassica.

Per ora il trigger manuale non è supportato nella pipeline YAML, vedere questa discussione . La buona notizia è che il team del prodotto ha considerato la richiesta di funzionalità e la nuova funzionalità è su Roadmap . (Forse in programma per il Q3 2020)

Secondo il team lì: lo scopo della nuova funzionalità che stanno pensando qui è di poter contrassegnare una fase come "inizia sempre manualmente". Se ci sono altre fasi che dipendono da questa fase, quelle continueranno ad attendere fino a quando questa fase non è stata eseguita.

Potremmo dover aspettare un po 'di tempo prima che la manual triggerfunzione diventi realtà nella pipeline di Yaml. Spero che la nuova funzionalità soddisfi le tue esigenze.

AlexanderVolok Aug 18 2020 at 10:10

Microsoft dice che le loro squadre utilizzano internamente di uscita del flusso strategia di ramificazione: uscita flusso: come lo facciamo Branching sul VSTS squadra

Flusso di rilascio significa che il ramo di rilascio deve essere creato per attivare il rilascio, che può apparire in questo modo:

release / nomeprodotto-sprint02

Pertanto, la creazione di un tale ramo può fungere da trigger manuale

Nella pipeline YAML multistadio, la fase di distribuzione della produzione dovrebbe essere codificata per essere attivata quando l'esecuzione della pipeline è il contesto del ramo di rilascio, cosa che non è difficile da fare utilizzando condition:un'espressione e che contiene un controllo:

${{ startsWith(variables['Build.SourceBranch'], 'refs/heads/releases')

ps Il mio recente blog sull'argomento simile: Azure DevOps - pipeline YAML e strategie di ramificazione