web-dev-qa-db-fra.com

Est-il possible de définir une variable de build VSTS dans une étape de build afin que la valeur puisse être utilisée dans une étape de build suivante?

J'utilise actuellement Build dans Visual Studio Team Services (était Visual Studio Online) et j'aimerais pouvoir définir une variable de build dans une étape de build afin que la nouvelle valeur puisse être utilisée dans une étape de build ultérieure.

De toute évidence, vous pouvez le définir avant le début de la génération, mais je cherche à lier tardivement la variable lors d'une étape de génération suivante.

Est-ce possible? enter image description here

24
Simian

À l'intérieur d'un script, vous pouvez mettre à jour une variable en émettant ce qui suit dans votre ps1

"##vso[task.setvariable variable=testvar;]testvalue"

Vous pouvez ensuite passer la variable dans le script suivant en utilisant $(testvar)

Ce document de l'API explique ce que ##vso commandes que vous pouvez utiliser.

N'oubliez pas de régler system.debug à true. Il semble qu'il y ait un bogue qui mute stdout et donc, tous ##vso ne fonctionne pas.

https://github.com/Microsoft/vso-agent-tasks/blob/master/docs/authoring/commands.md

6
Compulim

Vous pouvez créer un script PowerShell et le référencer en tant que tâche de génération. Ensuite, dans vos scripts PowerShell, ajoutez ceci:

"##vso[task.setvariable variable=key]value"

Après cela, sur toutes vos tâches, vous pouvez lire la variable comme $ (clé). Si vous souhaitez protéger votre variable, utilisez:

"##vso[task.setvariable variable=secretVar;issecret=true]value"

Et puis utilisez-le comme $ (secretVar) dans vos prochaines tâches.

1
Rodrigo Werlang