Je dois faire quelque chose de différent de ce qui a été demandé et répondu ici car la solution ne semble pas fonctionner pour moi: TeamCity, en passant un identifiant généré dans une étape de construction à une étape ultérieure
Je veux utiliser une chaîne générée par une étape de construction dans une étape de construction finale. Jusqu'à présent, j'ai configuré une variable environnementale appelée "TEST" qui est vide. Les deux étapes de génération utilisent le gestionnaire de ligne de commande.
Étape de construction n ° 1:
\##teamcity[setParameter name='env.TEST' value='test']
Étape de construction n ° 2:
echo $TEST
echo %env.TEST%;
Espace réservé pour le moment, mais si je pouvais accéder à la chaîne de test ('test') définie dans l'étape 1 de la construction, je serais très heureux.
vous devez faire écho à cette chaîne, par exemple.
echo "##teamcity[setParameter name='env.TEST' value='test']"
Ce que j'ai trouvé, c'est qu'avec les valeurs longues, dès que TeamCity décompose la sortie du journal en deux lignes distinctes echo ne fonctionnera plus - vous devez utiliser Write-Host
à la place.
Write-Host "##teamcity[setParameter name='env.TEST' value='test']"
Cela devrait toujours fonctionner, juste une note de côté - cette valeur ne sera disponible que sur les étapes suivantes .
Je pense que vous avez un extra "\" dedans. Essayez de supprimer cela et d'ajouter des guillemets doubles autour de cela et cela devrait fonctionner.
"##teamcity[setParameter name='env.TEST' value='test']"
Si cela ne fonctionne pas, essayez d'utiliser le type de coureur Powershell, car je l'utilise pour le configurer et cela fonctionne.
Pour développer les réponses ci-dessus, avec powershell, cela ressemblerait à l'étape 1:
Write-Host "##teamcity[setParameter name='env.TEST' value='$test']"
... et vous pouvez utiliser cette valeur à l'étape 2:
echo %env.Test%
En outre, vous devrez également définir env.Test dans les paramètres de construction de TC pour qu'il soit égal à quelque chose. Je viens d'utiliser un espace car je sais que la valeur sera définie via ps script. J'espère que cela t'aides.
Il doit être imprimé sur STDOUT. J'utilise cat
avec heredoc
pour éviter de devoir échapper des guillemets lors de l'utilisation de variables pour définir de manière dynamique les paramètres de configuration. Qu'est-ce que l'heredoc?
MYVARNAME=MYVALUE
cat <<EOF
##teamcity[setParameter name='myConfParameter' value='$MYVARNAME']
EOF
Résultat:
##teamcity[setParameter name='myConfParameter' value='MYVALUE']
Voici le ticket officiel à propos de l'ajout de guillemets doubles et echo (Write-Host - OS dependency).