web-dev-qa-db-ja.com

TeamCityはどこで%system.teamcity.build.workingDir%の値を取得しますか

TeamCityがあり、[Runner: Command Line]ページの[Build Configuration]には、[Command Parameter]フィールド%system.teamcity.build.workingDir%があります。

私の質問は、エージェントのシステムプロパティを見ると、設定されていることがわからないため、TeamCityはどこからこの値を取得するのかということです。 %system.teamcity.build.workingDir%[System Properties]または[Environment Variables]のリストに表示されません

17
EalesJS

どこを見てるの?他のシステムプロパティとともに一覧表示されます。

enter image description here

@ Snahider-任意の時点でのビルドは1つのエージェントでのみ実行されます。したがって、%system.teamcity.build.workingDir%は現在のビルドの作業ディレクトリに設定されます。これは、各ビルドのチェックアウトディレクトリの親である%system.agent.work.dir%と同じではありません。

たとえば、エージェントがC:\BuildAgentにインストールされている場合、%system.agent.work.dir%C:\BuildAgent\workになりますが、チェックアウトディレクトリを指定していない場合、%system.teamcity.build.workingDir%C:\BuildAgent\work\8b0fde2bf2d2efc0のようになります。 VCS設定で、または設定している場合は、wdと言うとC:\BuildAgent\work\wdになります

もう1つ、ビルドステップのステップで作業ディレクトリを変更した場合、たとえばExamples%system.teamcity.build.workingDir%は、名前が示すように、それを指します-C:\BuildAgent\work\wd\Examples So %system.teamcity.build.workingDir%は何が起こっているかによって変わる可能性がありますが、%system.agent.work.dir%はエージェントに対して同じままです。これが違いを説明することを願っています。

33
manojlds

%system.teamcity.build.workingDir%ドキュメントによると:

ビルド作業ディレクトリは、ビルドプロセスの現在のディレクトリとして設定されます。デフォルトでは、これはビルドチェックアウトディレクトリと同じディレクトリです。ビルドスクリプトをチェックアウトディレクトリ以外の場所から実行する必要がある場合は、ビルドランナーの設定ページの[作業ディレクトリ]フィールドを使用して明示的に指定できます。

Webサーバーがあり、同じマシンのエージェントのみにある場合、そのディレクトリは%system.agent.work.dir%と同じです。

http://confluence.jetbrains.net/display/TCD5/Agent+Work+Directory

私のウィンドウボックスにはC:/ Users/[user]/。BuildAgent/workがあります。

複数のエージェントがいる場合、ディレクトリが何になるかわかりません。 %system.teamcity.build.workingDir%の代わりに%system.agent.work.dir%を使用することをお勧めします。

同じ「コマンドラインビルド」を使用して、任意の変数の値をテストできます。「コマンドパラメータ」入​​力に変数を書き込んでビルドを実行すると、ビルドが終了したときにログに実際の値が表示されます。

3
Snahider