2011-11-21 12 views

Respuesta

58

Sí, puede establecer una variable de entorno en un paso de compilación y usarla en el siguiente paso. Tendrá que usar un mensaje de servicio en su script de compilación como se describe aquí http://confluence.jetbrains.net/display/TCD65/Build+Script+Interaction+with+TeamCity#BuildScriptInteractionwithTeamCity-AddingorChangingaBuildParameterfromaBuildStep para actualizar dinámicamente un parámetro de compilación, que puede usar en el siguiente paso. Tenga en cuenta que no estará disponible en el paso que lo genera, solo en el siguiente.

Tenga en cuenta que para establecer la variable, debe escribirse de alguna manera (**echo** para la línea de comando bash, **write-host** para Powershell), entre comillas. Ejemplo:

echo "##teamcity[setParameter name='env.ENV_AAA' value='aaaaaaaaaa']" 

y utilizar esta variable de escritura %env.ENV_AAA% en el cuadro en la siguiente etapa de construcción (al menos en TeamCity 9.1.7))

+2

María, gracias por el puntero. que establecer lo siguiente en el programa de rubí ejecutado por mi paso TeamCity construir 3 pone "## TeamCity [nombre setParameter = valor 'env.USER_DATETIME' = '# {DateTime.Now}']" y que establecen el siguiendo en el programa ruby ​​ejecutado por mi TeamCity build paso 4 pone "... USER_DATETIME = '# {ENV [' USER_DATETIME ']}" ¡Y funcionó! –

+0

Me complace que haya ayudado =) –

+0

No puedo recuperar el valor del parámetro en el siguiente paso sin predefinirlo en la sección 'Build Configuration Settings-> Parameters'. De acuerdo con la documentación: https://confluence.jetbrains.com/display/TCD9/Build+Script+Interaction+with+TeamCity (consulte "Agregar o cambiar un parámetro de compilación") @MikeJr: Esto no funcionó para me: 'USER_DATETIME = '# {ENV [' USER_DATETIME ']}" ' Esto funcionó:' echo% env.USER_DATETIME% ' La versión de Teamcity es 9.1.6 (compilación 37459) – antonbormotov

Cuestiones relacionadas