Quel est l'équivalent YAML des pipelines de libération?
J'ai étudié Azure DevOps et je suis perplexe: Microsoft semble recommander fortement l'utilisation de pipelines YAML au lieu de pipelines classiques; assez juste, mais ils doivent remplacer toutes les fonctionnalités des pipelines classiques. Comment suis-je censé remplacer la fonctionnalité de «pipeline de publication» par des pipelines YAML?
Ainsi, par exemple, avec les pipelines de publication classiques, je pourrais configurer un pipeline à déployer en production avec un déclencheur manuel (voir `` Manuellement par un utilisateur ''):
https://docs.microsoft.com/en-us/azure/devops/pipelines/release/triggers?view=azure-devops#pull-request-triggers
Quel est l'équivalent du pipeline YAML? Je ne veux évidemment pas d'un déclencheur qui se déploie automatiquement en production - je veux toujours que ce déploiement soit lancé strictement manuellement - mais l'article d'aide ne semble pas fournir d'alternative à YAML.
Réponses
Comme Daniel le commente ci-dessus, le pipeline Yaml prend en charge les pipelines yaml à plusieurs étages pour CD. Vous pouvez consulter Azure DevOps Pipelines - Multi-Stage Pipelines and YAML for Continuous Delivery pour plus de détails.
Le pipeline à plusieurs étapes Azure devops yaml et le pipeline de version classique peuvent tous deux être utilisés pour le CD, mais ils présentent une certaine différence . Et comme je le sais, aucune fonctionnalité du pipeline YAML ne peut être équivalente à la manual trigger
version classique.
Pour l'instant, le déclencheur manuel n'est pas pris en charge dans le pipeline YAML, consultez cette discussion . La bonne nouvelle est que l'équipe produit a pris en compte la demande de fonctionnalité et que la nouvelle fonctionnalité est sur la feuille de route . (Peut-être comme prévu pour 2020 Q3)
Selon l'équipe là-bas: La portée de la nouvelle fonctionnalité à laquelle ils pensent ici est de pouvoir marquer une étape comme "toujours démarrer manuellement". S'il y a d'autres étapes qui dépendent de cette étape, celles-ci continueraient d'attendre jusqu'à ce que cette étape soit exécutée.
Nous devrons peut-être attendre un certain temps avant que la manual trigger
fonctionnalité ne devienne réalité dans le pipeline Yaml. J'espère que la nouvelle fonctionnalité répondra à vos besoins.
Microsoft dit que leurs équipes utilisent en interne Flow Release stratégie de branchement: libérer de l' eau: Comment pouvons-nous Branching sur l'équipe VSTS
Release Flow signifie que la branche release doit être créée pour que la release soit déclenchée, ce qui peut ressembler à ceci:
versions / productname-sprint02
Par conséquent, la création d'une telle branche peut servir de déclencheur manuel
Dans le pipeline YAML à plusieurs étapes, la phase de déploiement de production doit être codée pour être déclenchée lorsque l'exécution du pipeline est le contexte de branche de publication, ce qui n'est pas difficile à faire en utilisant une condition:
et une expression contenant une vérification:
${{ startsWith(variables['Build.SourceBranch'], 'refs/heads/releases')
ps Mon blog récent sur le même sujet: Azure DevOps - pipelines YAML et stratégies de branchement