TeamCityがあり、[Runner: Command Line]
ページの[Build Configuration]
には、[Command Parameter]
フィールド%system.teamcity.build.workingDir%
があります。
私の質問は、エージェントのシステムプロパティを見ると、設定されていることがわからないため、TeamCityはどこからこの値を取得するのかということです。 %system.teamcity.build.workingDir%
は[System Properties]
または[Environment Variables]
のリストに表示されません
どこを見てるの?他のシステムプロパティとともに一覧表示されます。
@ 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%
はエージェントに対して同じままです。これが違いを説明することを願っています。
%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%を使用することをお勧めします。
同じ「コマンドラインビルド」を使用して、任意の変数の値をテストできます。「コマンドパラメータ」入力に変数を書き込んでビルドを実行すると、ビルドが終了したときにログに実際の値が表示されます。