4

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

4

2 回答 2

6

请参阅预定义属性列表。在 rake 脚本和 ruby​​ 代码中,这些变量可通过环境使用,例如在rakefile中添加:

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

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

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

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

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

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

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

于 2009-08-13T23:58:14.600 回答
2

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

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

您现在将拥有一个包含所有系统属性的哈希(减去前导的“系统”)。

希望这可以帮助。

标记

于 2014-01-16T15:37:03.760 回答