2016-11-09 3 views
0

ビルドコンフィグレーション "Build(Trunk)"と "Deploy CI(トランク)"のチームシップがあります。2つのTeamCityビルドコンフィグレーションの間でアセンブリが削除されました

「ビルド(トランク)」には、VCSトリガー「VCSチェックインが検出された後にビルドをトリガーする」があり、その目的はデプロイメント用にアセンブリをビルドすることです。

"Deploy CI(トランク)"には完了ビルドトリガがあります。ビルド(トランク)で成功するのを待っています。 "ビルド(トランク)"オプションに "同じエージェントでビルドを実行"

時には "ビルド(トランク)"が成功し、そこにdllがあり(それをチェックするビルドステップがあります)、 "ビルド(トランク)"はすでにビルドされているチェックしてください)。 \チームシティー\ buildAgent仕事\ \ d11b43f69b1be1cb \ソース\製品\ build.xmlの(191、9:

は、私は、エラー "展開(トランク)" [MSBuild.ExtensionPack.Framework.Assembly] Dで終わります):ファイルが見つかりません:D:¥TeamCity¥buildAgent¥work¥d11b43f69b1be1cb¥Source¥Product¥output¥Release¥Application¥Server¥bin¥Product.Server.dll

dllはビルドの最後にあります(トランク) "ではなく、何らかの理由で"デプロイ(トランク) "に欠けています。別のビルド構成(ユニットテスト)でも同じ問題が発生します。

これが起こると、私は一般にビルドの前にチェックアウトディレクトリのすべてのファイルをクリーンアップして動作するビルド(トランク)を実行します。私たちは現在TeamCity 10を使用していますが、TeamCity 9で発生しました。

根本的な原因を特定する方法はわかりません。

+1

おそらく構築する間の依存関係を調査し、明示的にあなたが、あなたのデプロイ構成https://confluence.jetbrains.com/display/TCD9/Build+Dependencies+Setup – KeepCalmAndCarryOn

+0

にダウンロードすることができ、あなたのビルド構成に成果物を追加しますそうではなく、複数のビルド構成を実行している共有スナップショットが原因でした。私は答えとして一連の出来事を掲示しました。私は正しい方向に向いてくれてありがとう。 – jahav

答えて

0

私はそれを理解しました(指示に感謝します)。基本的には、スナップショットの依存関係や複数のトリガーに問題がありました。デプロイには、スナップショットの依存関係が必要な正しいバージョンである必要があります。ビルドが再度実行された場合(新しいリビジョンでのdeploy:rebuildとは別のトリガーがあります)、前者のデプロイメントが実行される前に(別のトリガー:ビルドが完了したとき)、Deployによって検出され、VCSのクリーンチェックアウトが実行されます。

[16:26:52]:清潔なチェックアウトを実行します。理由:エージェントのプロジェクトソースが要求したものより新しいです。

しかし、きれいなチェックアウトでは、すでにチェックアウトディレクトリにあるDLLが削除され、展開できません。

例は、(なぜ失敗しました "#4257を展開する") - 1つのエージェントのみが存在する:

[午後4時17分25秒] SVNビルドが開始された、新しいコミットがあるため、#4257がトリガされたビルドします。
[16:21:05]ビルド#4258は新しいコミットのために起動されましたが、ただ1人のエージェントしかビルドできないため、ビルドは今すぐ待機します。
[16:22:39]ビルド#4257が終了しました。
[16:22:39]エージェントが現在無料であるため、ビルド#4258が開始されます。
[16:22:45]ビルド#4257が実行されたため、ビルド#4257が完了しましたが、起動できません。
[16:26:51]ビルド#4258が完了しました。
[16:26:51] Deploy#4257が開始されますが、スナップショットで予想よりも新しいリビジョンが検出されます。そのトリガーによると、ビルド#4257からのリビジョンがあるはずですが、代わりにビルド#4258からのリビジョンがあります。ビルドステップを実行する前にスナップショットのクリーンチェックを実行し、ビルドされたdll(ビルド#4258の不正な新しいDLL)が削除されます。

0

作成した成果物を共通の「成果物」ディレクトリに公開し、成果物が作成された後に実行される展開ビルド構成でスナップショット依存関係を作成するように、最初のビルド構成を設定する必要があります。また、2番目のビルド構成では、共通の場所にあるアーティファクトにアクセスします。

関連する問題