Teamcity和Rake:tc系统属性在哪里?

时间:2009-08-13 22:46:07

标签: teamcity rake

我正在将我的一些NAnt构建脚本转换为rake。有谁知道如何在我的rake脚本中访问系统属性(例如build.number)? Teamcity rake插件是否注入了它们?我似乎无法找到doco。

2 个答案:

答案 0 :(得分:6)

请参阅predefined properties列表。在rake脚本和ruby代码中,这些变量可以通过环境获得,例如在 rakefile 中添加:

puts 'Build number: ' + ENV['BUILD_NUMBER']

如果要查看所有可用属性,请输入以下代码:

ENV.each {|key, value| puts "#{key} = #{value}" }

从TeamCity运行构建并检查日志,在所有消息模式下,您将看到可用的属性。

如果要传递TeamCity中可用的或在agent.conf文件中定义的其他属性,则应将其添加到 Rake的属性和环境变量选项卡中Web UI中的配置

例如,您希望传递 agent.conf 文件中定义的 system.CUSTOM 属性。点击添加新变量链接,将 CUSTOM 指定为名称,将%system.CUSTOM%指定为值。现在在 rakefile 中,您可以将其作为 ENV ['CUSTOM'] 进行访问。

因此,如果它们不在已作为环境变量传递的预定义属性的列表中,则通过环境传递所需的属性。

答案 1 :(得分:2)

我想我找到了一种更好的方法来解决这个问题。如果安装gem java_properties,则将以下代码添加到rakefile:

props = JavaProperties::Properties.new(ENV["TEAMCITY_BUILD_PROPERTIES_FILE"])

现在你将拥有一个包含所有系统属性的哈希(减去领先的'系统')。

希望这有帮助。

标记