2009-08-13 6 views
4

私はNAKEビルドスクリプトのいくつかをレーキに変換しています。誰かが私のレーキスクリプト内のシステムプロパティ(例えばbuild.number)にアクセスする方法を知っていますか? Teamcityのレーキプラグインでもそれらを注入していますか?私はドコを見つけることができない。TeamcityとRake:tcシステムのプロパティはどこですか?

答えて

6

predefined propertiesのリストを参照してください。すくいスクリプト内やRubyのコードでこれらの変数は、環境を経由して利用可能な、例えばrakefileでこれを追加する:あなたはすべての利用可能なプロパティを表示したい場合は

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

、次のコードを置く:

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

TeamCityからビルドを実行し、ログを調べるには、すべてのメッセージモードで利用可能なプロパティが表示されます。

あなたはチームシティーで利用可能であるか、agent.confファイルで定義されている他のいくつかのプロパティを渡したい場合は、プロパティと環境変数の中にそれを追加する必要がありTHER Web UIでレーキ設定タブ。例えば

、あなたはagent.confファイルで定義されてsystem.CUSTOMプロパティを渡したいです。 新しい変数を追加するリンクをクリックし、という名前のCUSTOMと名前として%system.CUSTOM%を指定します。今すぐrakefileにアクセスするには、ENV ['CUSTOM']としてください。

環境変数としてすでに渡されている定義済みプロパティのリストにない場合は、必要なプロパティを環境経由で渡すことをお勧めします。

+0

魅力的に働いた –

2

私はこれを処理するより良い方法を見つけたと思います。あなたが宝石のJAVA_PROPERTIESをインストールする場合は、あなたのrakefileに次のコードを追加します

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

あなたは今すぐにシステムプロパティのすべてを持っているハッシュ(マイナスリードする「システム」)を持つことになります。

これが役に立ちます。

マーク

+1

正確には、これは素晴らしいソリューションです。この@ https://machetedontdebug.wordpress.com/2014/03/30/accessing-teamcity-build-properties-from-rake-runner/の私のblogpostを見てください。 – iwo

関連する問題