web-dev-qa-db-fra.com

Comment transmettre les variables entre les tâches dans le pipeline VSTS?

Je travaille sur le déploiement de modèles de bras via le pipeline VSTS. J'ai un script PowerShell qui obtient un identifiant de sous-réseau et je dois transmettre cette valeur d'identifiant de sous-réseau à une autre tâche de VSTS. Comment puis-je transmettre des variables d'un script PowerShell à vsts, puis le transmettre à la tâche de déploiement du groupe de ressources Azure en tant que paramètre?

4
itye1970

Vous pouvez définir une nouvelle variable dans votre PowerShell, puis la transmettre à VSTS afin qu'elle puisse être utilisée dans l'une des tâches suivantes, comme celle-ci.

Write-Host "##vso[task.setvariable variable=sauce]crushed tomatoes"
Write-Host "##vso[task.setvariable variable=secretSauce;issecret=true]crushed tomatoes with garlic"

Cela créera une nouvelle variable d'environnement appelée "sauce" (premier exemple) avec la valeur "tomates concassées".

Sur votre prochaine tâche, vous pouvez la lire en utilisant $ (sauce) dans votre écran de configuration de tâche ou $ env: sauce dans un script PowerShell.

Voir https://docs.Microsoft.com/en-us/vsts/build-release/concepts/definitions/release/variables?tabs=batch pour plus d'informations sur l'utilisation.

12
Rodrigo Werlang

Je cherchais la même chose et je ne trouvais pas de réponse plus tôt. Mais maintenant je connais la réponse.

La suggestion de @Rodrigo Werlang fonctionnerait, mais la variable set serait limitée au travail dans lequel elle était configurée dans la tâche . À ce jour, il s'agit d'une limitation connue et documentée ici .

Pour définir ou modifier une variable à partir d'un script, utilisez la commande task.setvariable logging. Notez que la valeur de la variable mise à jour est liée au travail en cours d'exécution et qu'elle ne circule pas entre les travaux ou les étapes. Les noms de variables sont transformés en majuscules et les caractères "." et "" sont remplacés par "_".

1
Artak