TeamCity 2019.2ヘルプ

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

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

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

新しいスナップショット依存関係を追加するときは、以下のオプションを指定する必要があります。

オプション

説明

に依存

現在のビルド構成に依存するビルド構成を指定します。

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

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

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

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

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

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

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

新しいトリガービルドは、適切にビルドされたビルドを依存関係として "使用"するだけです。最新の完成した「適切な」ビルドが失敗した場合は、再実行されます。

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

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

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

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

  • ビルドを実行しますが、問題を追加する : 依存ビルドが実行され、問題がそれに追加され、その状況が失敗に変更されます。(問題が以前に解決されていない場合)

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

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

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

適切なビルド

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

ビルドが「適切」であると見なされるためには、以下のすべての条件を満たす必要があります。

  • 処理中のキューチェーン全体と同じソースのスナップショットを使用します。ビルド設定が同じVCS設定を持つ場合、これは基本的に同じソースリビジョンを持つものを意味します。VCS設定が異なる場合(VCSルートまたはチェックアウトルール)、「同じソーススナップショット」リビジョンは、ある時点で同時に行われたリビジョンを意味します。

  • 成功する (「適切なビルドから成功したビルドのみを使用する」スナップショット依存関係オプションが設定されている場合)

  • 個人的なものではなく、通常のものにする

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

  • 問題となっている依存関係ビルド構成に対して "rebuild" オプションを選択して、元のビルドを起動しないでください。

  • 効果的なリビジョン計算を妨げるVCS設定がない、下記参照

  • 他のビルド構成のスナップショットはありません。「適切なものがある場合は新しいビルドを実行しない」オプションが「オフ」に設定された現在のスナップショットに依存する

  • 実行中のビルドが「ハング」していない

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

  • スナップショットの依存関係に加えて成果物の依存関係もある場合は、適切なビルドに成果物を含める必要があります。

  • すべての依存関係ビルド(現在のビルドが依存しているビルド)は "適切"で、適切にマージされています

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

VCSルートの設定によっては、ビルドの再利用を事実上無効にすることができます。これらの設定は以下のとおりです。

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

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

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

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


関連事項:

概念 : 依存ビルド