2012-12-07 16 views

答えて

14

これは、チェックアウトディレクトリの場所を制御することで実現できます。

まず、チェックアウトディレクトリを両方のビルドで認識できるものに定義する必要があります。ビルド構成で、バージョン管理設定 - >チェックアウト設定を参照します。チェックアウトディレクトリの設定をCustom Pathに変更します。ソースをチェックアウトするディレクトリを指定するよう求められます。 TeamCityがそこに書き込み権限を持っている限り、これはあなたが望むところであればどこでもかまいません**。

次に、各プロジェクトのチェックアウトルール(バージョン管理設定でも同様)を修正して、チェックアウトディレクトリのルートに関連するフォルダを対象とするようにする必要があります。これを行うには、ルールを+:%some.repo.path%=>/%some.sub.folder%に設定します。あなたはそこに望むサブフォルダを処方することができます。 Checkoutディレクトリのルート(=>/)まですべてをチェックアウトします。

両方のプロジェクトで同じCheckoutディレクトリが参照されている場合、この設定の組み合わせによって、探しているコントロールと柔軟性が得られるはずです。

**私たちのチェックアウトディレクトリでは、パラメータ化された値%teamcity.agent.work.dir%\%system.teamcity.projectName%\%branch%を使用しています。最初の2つのパラメータはTeamCityシステムパラメータで、最後はTeamCityによって定義されます。私たちのシステムでは、これはG:\ BuildAgent \ work \ $ PROJECT \ $ BRANCHに解決されます。これはすべてをきちんとして予測可能にします。

1

これらのビルド構成では、VCS設定(VCS​​ルーツとチェックアウトルールのセット)が異なります。そのため、TeamCityで異なるチェックアウトディレクトリが使用されています。このような状況では、サーバーに同じディレクトリを使用させることを強くお勧めしません。

2つの設定AとBがあり、Teamcityを同じディレクトリに構築するように設定したが、AとBのVCS設定が異なるとします。それでは、チェックアウト時に何をすべきですか?

たとえば、ビルドAがエージェントで終了し、ビルドBが同じエージェントで開始された場合、TeamCityはチェックアウトディレクトリの下のすべてのソースをクリーンアップし、再度フェッチする必要があります。同じ話はビルドAの後にビルドBが始まるときに起こります。その結果、これらのきれいなチェックアウトは遅くなるでしょう。

自動生成のチェックアウトディレクトリを使用すると、サーバーはチェックアウトのパフォーマンスとエージェントのディスク使用を最適化できます。カスタムチェックアウトディレクトリを使用するアプローチは最適ではなく、スケーラビリティがありません。可能な場合は避けてください。

も参照してください: http://confluence.jetbrains.com/display/TCD8/Build+Checkout+Directory http://confluence.jetbrains.com/display/TCD8/Clean+Checkout

関連する問題