TeamCity,将在一个构建步骤中生成的 id 传递到后面的构建步骤
Posted
技术标签:
【中文标题】TeamCity,将在一个构建步骤中生成的 id 传递到后面的构建步骤【英文标题】:TeamCity, passing an id generated in one build step to a later build step 【发布时间】:2012-01-03 09:43:42 【问题描述】:TeamCity 的新手。我有多个构建步骤。第 3 步生成第 4 步所需的 id。在第 3 步和第 4 步之间传递 id(字符串)的最佳方法是什么?构建步骤是用 Ruby 编写的。可以设置环境变量吗?
【问题讨论】:
【参考方案1】:是的,您可以在一个构建步骤中设置环境变量,并在接下来的步骤中使用它。您将需要在构建脚本中使用服务消息,如此处所述http://confluence.jetbrains.net/display/TCD65/Build+Script+Interaction+with+TeamCity#BuildScriptInteractionwithTeamCity-AddingorChangingaBuildParameterfromaBuildStep 来动态更新构建参数,您可以在下一步中使用该参数。请注意,它在生成它的步骤中不可用,仅在下一个步骤中可用。
请注意,要设置变量,它必须以某种方式写出(echo
用于 bash 命令行,write-host
用于 Powershell),用引号括起来。示例:
echo "##teamcity[setParameter name='env.ENV_AAA' value='aaaaaaaaaa']"
要使用此变量,请在下一个构建步骤的框中写入 %env.ENV_AAA%
(至少在 TeamCity 9.1.7 中))
【讨论】:
玛丽亚,谢谢你的指点。我在我的 TeamCity 构建步骤 3 puts "##teamcity[setParameter name='env.USER_DATETIME' value='#DateTime.now']" 执行的 ruby 程序中设置了以下内容,并在 ruby 程序中设置了以下内容由我的 TeamCity 构建步骤 4 执行 puts "... USER_DATETIME = '#ENV['USER_DATETIME']'" 并且成功了! 如果没有在Build Configuration Settings->Parameters
部分中预先定义参数值,我将无法在下一步中检索参数值。根据文档:confluence.jetbrains.com/display/TCD9/…(请参阅“添加或更改构建参数”)@MikeJr:这对我不起作用:USER_DATETIME = '#ENV['USER_DATETIME']'"
这有效:echo %env.USER_DATETIME%
Teamcity 版本为 9.1.6(内部版本 37459)
为现在正在查看此内容的任何人更新了文档:confluence.jetbrains.com/display/TCD10/…以上是关于TeamCity,将在一个构建步骤中生成的 id 传递到后面的构建步骤的主要内容,如果未能解决你的问题,请参考以下文章
TeamCity 是不是支持执行其他 TeamCity 构建的构建步骤?