TeamCity 2020.2 ヘルプ

スナップショットの依存関係

ビルド(ビルド B など)のスナップショット依存関係を別のビルド(ビルド A)のソースに設定することで、ビルド A が実行されて終了した後にのみビルド B が開始されるようにすることができます。ビルド A を依存ビルドと呼びますが、ビルド B は依存ビルドです。

ビルド設定 | 依存関係ページには、構成された依存関係が表示されます。このページのスナップショットの依存関係セクションでは、ビルドチェーンとその構成をプレビューできます。プレビューには、チェーンのビルドが表示されます。自動トリガーが構成されたビルドには、v.pngアイコンが付いています。

スナップショットの依存関係には、次のオプションがあります。

オプション

説明

に依存

依存するビルド構成を指定します。

この例では、現在のビルド B の依存関係としてビルド A を選択します

リビジョン同期を強制する

このオプションが有効になっているスナップショットの依存関係によってリンクされているチェーンのすべてのビルド(デフォルト)では、TeamCity は同じソースのスナップショット(たとえば、同じ VCS ルートの同じリビジョン)を使用します。これは、正常にビルドするためにソースの同じ状態を使用する必要がある構成に推奨される設定です。

スナップショット依存関係に対してこのオプションを無効にすると、依存関係ビルドが現在のビルド構成にプロモートされると、現在のビルド構成のビルドは、プロモートされた依存関係に対応するリビジョンではなく、ソースの最新のリビジョンを使用します。これは、ビルドに厳密なソースの依存関係がない場合に役立ちます(たとえば、パッケージおよびデプロイの手順の場合など)。

この例では、ビルド B のスナップショット依存関係でこのオプションが無効になっている場合、動作は次のようになります。ビルド A はリビジョン 1.2 で起動し、終了後、ビルド B にプロモートされます。TeamCity はビルド B の最新のリビジョンを検索します(たとえば、1.3)B を開始した瞬間
それ以外の場合、このオプションが無効になっていると、TeamCity は A と同じ 1.2 リビジョンでビルド B を開始します。

ソースのスナップショットルールは、オプションを有効にしてスナップショットの依存関係を介してリンクされたビルドチェーンの一部にのみ適用されることに注意してください。

適切なものがあれば、新しいビルドを実行しないでください

このオプションが有効になっている場合、適切なソースのリビジョンで実行中または終了した別の依存関係ビルドがすでに存在する場合、TeamCity は新しい依存関係ビルドを実行しません。適切なビルドも参照してください。
この場合、依存ビルドがトリガーされると、依存ビルドもキューに入れられます。次に、ビルドチェーンの変更が収集されると、この依存関係ビルドがキューから削除され、依存関係が適切な完成したビルドに設定されます。

適切なビルドから成功したビルドのみを使用する

新しくトリガーされたビルドは、正常に終了した適切なビルドのみを依存関係として使用します。最新の完成した適切なビルドが失敗した場合、再実行されます。

同じエージェントでビルドを実行する

有効で B スナップショット -A に依存する場合、各ビルド B は、同じビルドチェーンのビルド A が実行されたのと同じエージェントで実行されます。

依存関係の失敗 / 開始に失敗 / 依存関係のキャンセル

依存関係が失敗した場合は、次のいずれかのオプションを選択して依存関係のあるビルドのステータスを管理できます。

  • ビルドを実行しますが、問題を追加します : 依存ビルドが実行され、問題が追加され、ステータスが失敗に変更されます(問題が以前にミュートされていない場合)。

  • ビルドを実行しますが、問題を追加しません : 依存ビルドが実行され、問題は追加されません。

  • ビルドを開始できなかったものとしてマーク : 依存ビルドは実行されず、「開始に失敗しました」とマークされます。

  • ビルドをキャンセル : 依存ビルドは実行されず、「キャンセル済み」としてマークされます。

適切なビルド

スナップショットの依存関係に関して、適切なビルドは、ビルドチェーン内のキューに入れられた依存関係ビルドの代わりに使用できるビルドです。つまり、ビルドチェーンの一部であるキューに入れられたビルドを削除でき、それに依存するビルドを、キューに入れられた、実行中の、またはすでに終了した「適切な」ビルドに依存させることができます。この動作は、対応するスナップショットの依存関係の「適切なビルドがある場合は新しいビルドを実行しない」オプションが有効になっている場合にのみ機能します。

ビルドが「適切」と見なされるには、次のすべての条件に準拠している必要があります。

  • キューに入れられたビルドチェーン全体が処理されているのと同じソースのスナップショットを使用する必要があります。ビルド構成の VCS 設定が同じである場合、これは同じソースのリビジョンを意味します。VCS 設定が異なる場合(VCS ルートまたはチェックアウトルール)、これは、ある時点で同時に行われたリビジョンを意味ます。

  • 成功する必要があります(「適切なビルドからの成功したビルドのみを使用する」スナップショット依存関係オプションが有効になっている場合)。

  • 個人的なビルドではなく、通常のビルドである必要があります。

  • reverse.dep. パラメーター(関連機能要求:TW-23700(英語))を介して設定されたパラメーターを含め、カスタマイズされたパラメーターがあってはなりません。

  • 元のビルドは、「再ビルド」によってトリガーされてはなりません。依存関係ビルド構成のアクション。

  • 効果的なリビジョン計算を妨げる VCS 設定があってはなりません。詳細を参照してください

  • 他のビルド構成スナップショットはありません - 現在のスナップショットに応じて、「適切なビルドがある場合は新しいビルドを実行しない」オプションが無効になっています。

  • 実行中のビルドは「ハング」していません。

  • ビルド構成の設定は、ビルド以降変更されていません(つまり、ビルドは現在のビルド構成設定で実行されました)。これには、ビルド構成のすべての親プロジェクトのパラメーターへの変更も含まれません。隠されたビルドのアーティファクト.teamcity/settings/digest.txt ファイルを比較することで、複数のビルド間で設定が変更されたかどうかを確認できます。

  • スナップショットに加えてアーティファクトの依存関係もある場合は、適切なビルドにアーティファクトが含まれている必要があります。

  • すべての依存関係ビルド(現在のビルドが依存するビルド)は「適切」です。と適切にマージされます。

ビルドの再利用を無効にする VCS 設定

VCS ルートの一部の設定では、ビルドの再利用を効果的に無効にすることができます。これらの設定は次のとおりです。

  • Subversion: チェックアウトしますが、変更を無視しますモード

  • CVS: タグによるチェックアウトモード

  • Perforce: ストリームまたはクライアント接続設定、またはラベルがチェックアウトするラベル / 改訂として指定されている

  • Starteam:ラベルまたはプロモーションの日付表示するように設定されたチェックアウトモードオプション

関連ページ:

依存ビルド

TeamCity では、1 つのビルド構成は 1 つ以上の構成に依存できます。2 種類の依存関係を指定できます。スナップショットの依存関係、アーティファクトの依存関係、アーティファクトの依存関係は、あるビルドによって生成されたアーティファクトを別のビルドに取り込む方法にすぎません。対応するスナップシ...

ビルドチェーン

ビルドチェーンは、スナップショットの依存関係によって相互接続された一連のビルドです。ビルドチェーンは「パイプライン」と呼ばれることもあります。リビジョンの同期が有効になっているスナップショットの依存関係にリンクされたビルドチェーンの一部は、ソースの同じスナップショットを使用します。一般的なユースケー...

パーソナルビルド

パーソナルビルドは、一般的なビルドシーケンスのビルドアウトであり、通常はバージョン管理にまだコミットされていない変更を使用します。パーソナルビルドは通常、サポートされている IDEの 1 つからリモート実行プロシージャを介して開始されます。以下で説明するように、変更を含むパッチをサーバーに直接アップ...

依存関係を構築する

このページでは、例に基づいて、TeamCity で依存関係がどのように機能するかについての一般的な考え方を示します。依存関係の説明については、依存ビルドを参照してください。導入 :多くの場合、あるビルドの出力を別のビルドで使用したり、同じソース上でいくつかのビルドを順番に実行したりすると便利です。典...