【问题标题】:Teamcity and Rake: Where are the tc system properties?Teamcity 和 Rake:tc 系统属性在哪里?
【发布时间】:2014-01-16 23:37:03
【问题描述】:

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

【问题讨论】:

    标签: teamcity rake


    【解决方案1】:

    请参考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 属性。点击 Add new variable 链接,指定 CUSTOM 作为名称,指定 %system.CUSTOM% 作为值。现在,您可以在 rakefile 中以 ENV['CUSTOM'] 的身份访问它。

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

    【讨论】:

      【解决方案2】:

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

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

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

      希望这会有所帮助。

      标记

      【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-05-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-27
      相关资源
      最近更新 更多