0

約 6 つの .sln ファイルを含む git リポジトリがあります。各ソリューションには約 15 個のプロジェクトがあります。

また、TeamCity を使用して git リポジトリをポーリングし、変更が見つかった場合にビルドします。

ビルドを次のように強化したいと思います。

  1. コミットによって実際に変更されたプロジェクトのみをビルドします。
  2. (TeamCity で) ビルド成果物として変更された出力のみを公開します。

たとえば、開発者が 2 つの異なるプロジェクトのファイルを変更した場合、それらのプロジェクトのみが再ビルドされ、それらの出力のみが現在のビルドの出力としてある場所にコピーされます。

最初のポイントは「ビルド」ターゲットを使用して可能ですが、ビルドされたプロジェクトの出力のみをどこかにコピーする方法が見つかりませんでした。

4

2 に答える 2

1

TeamCityは、リポジトリ内の特定のパスにあるファイルが変更された場合にのみビルドをトリガーするために使用できるVCSトリガールールを提供します。これらのルールは、リポジトリから実際にプルダウンされるものを微調整するために使用されるチェックアウトルールと組み合わせて使用​​できます。

http://confluence.jetbrains.net/display/TCD7/Configure+VCS+Triggers#ConfigureVCSTriggers-VCSTriggerRules

http://confluence.jetbrains.net/display/TCD7/VCS+Checkout+Rules

VCSトリガー/チェックアウトルールは、ビルド構成レベルで定義されます。理論的には、単一のプロジェクト内の変更を監視して、そのプロジェクトの.csprojファイルに対してビルドをトリガーできます。アーティファクトは、単にその単一のプロジェクトの出力です。ただし、実際には、プロジェクトごとにビルド構成が必要になることはおそらくないでしょう。

単一のリポジトリ内の6つのソリューションは、SVNやTFSなどから移行したようなにおいがします。可能であれば、各slnを独自のGitリポジトリに配置することをお勧めします。6つのslnを使用して90のプロジェクトでモノリシックアプリを「管理」している場合は、他にもいくつかの課題があります。

これがお役に立てば幸いですが、リポジトリとプロジェクトに関する詳細情報がお役に立てば幸いです。

于 2012-12-28T05:22:25.453 に答える