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 构建的构建步骤?

如何在 java 中获取 Teamcity 配置的值?

将Jenkins布尔管道迁移到Teamcity构建链的问题

TeamCity 构建步骤——在 MSBuild 中失败

为啥构建后步骤 (xcopy) 偶尔会在 TeamCity 构建中以代码 2 退出?

无法从 Kotlin 中生成的 Apollo 类构建查询(.builder() 不存在)