Nous voici donc à la véritable raison de la rédaction de cet article. Générer des paramètres dans une étape et les transmettre à l'étape suivante s'est avéré être une tâche pas si facile. Et voici pourquoi. Parce que théoriquement, chaque
stage peut être exécutée sur un agent séparé, il ne peut y avoir de "mémoire" partagée ou de variables globales qui pourraient stocker des valeurs générées au moment de l'exécution dans une
stage pour être utilisées dans une autre
stage. Cependant, Microsoft ne pouvait pas priver complètement les DevOps de cette capacité en raison de la banalité même de la tâche et a trouvé peut-être la seule solution fonctionnelle dans cette architecture.
Mais avant d'aborder cette solution, plongeons dans l'approche des variables dans les pipelines YAML en général.
Il n'y a que 3 types de variables:
- macro,
- expression de modèle,
- expression de runtime.
Chacun d'entre eux fonctionne légèrement différemment.
L'expression de modèle est traitée lors de la compilation du pipeline. Fondamentalement, c'est un copier-coller de la valeur que vous avez définie dans une variable de ce type dans le fichier YAML où vous utilisez cette variable. Vous ne pouvez pas modifier de telles variables une fois que le pipeline a démarré. La syntaxe de ces variables est
${{ variables.var }}.
Mais les
macro et les
expressions de runtime sont un peu plus compliquées. Ils fonctionnent tous les deux au moment de l'exécution, mais la macro est exécutée avant qu'une tâche ne soit exécutée. De plus, les expressions de runtime sont optimisées pour être utilisées dans des
conditions et des
expressions. Leur syntaxe est
$(var) pour
Macro et
$[variables.var] pour les
expressions de Runtime.
Pour les besoins de cet article, ces informations sont suffisantes, mais si vous voulez approfondir votre compréhension du travail avec les variables, vous pouvez vous référer à la documentation fournie dans
le lien.
Maintenant, parlons des variables de sortie. Vous pouvez trouver tous les détails
ici, mais nous discuterons du transfert de variables entre les étapes pour mettre en œuvre notre idée.
Ainsi, pour rendre une variable visible "à l'extérieur" de stage, il existe une syntaxe spéciale: