TeamCity 2020.1ヘルプ

依存ビルド

TeamCityでは、1つのビルド構成は1つ以上の構成に依存できます。2種類の依存関係を指定できます。

An artifact dependency is just a way to get artifacts produced by one build into another. Without a corresponding snapshot dependency, it is mainly used when the build configurations are not related in terms of sources. For example, one build provides a reusable component for others.
A snapshot dependency influences the way builds are processed and implies that the builds are deeply related, one build being a logic part of another.

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

スナップショットの依存関係は、TeamCityのビルド構成間のソースレベルの依存関係を表現することを可能にする強力な概念です。主な目的は、スナップショットの依存関係とリンクしたさまざまなビルド構成を作成することによって、複雑なビルド手順を可能にすることです。これにより、特に、単一のモノリスビルドを柔軟な再利用規則を使用して1組の相互リンクビルド(ビルド・チェーン)に分割することができます。TeamCityは、このレベルでビルド構造を定義するという宣言スタイル(ビルドトリガーを追加するのではなく依存関係を宣言する)に従って、より柔軟で強力な機能を可能にします。

典型的なスナップショットの依存関係の使用箇所と関連するブログ投稿の説明については、依存関係を構築するを参照してください:2019年9月(英語)2016年3月(英語)2012年4月(英語)

ビルド構成Aのビルド構成Bへのスナップショット依存関係により、Aのビルドを開始する前に、Aの各ビルドの「適切な」ビルドがBになるようになります。AとBの両方のビルドは、同じチェーンに属していてリビジョン同期が実施されている場合、同じソーススナップショットを使用します(VCSルートが異なる場合はソースのリビジョンは同じであるか、同時に取得されます)。リビジョンの同期が強制されていない場合、ビルドAは完成したビルドBをAにプロモートするときに最新のリビジョンを使用できます(ビルド・チェーンで詳細を読む)。

スナップショット依存関係を持つビルドのビルド結果ページでは、依存関係のあるすべてのビルドとそのエラーがある場合はそれらのエラーを確認できます。

スナップショットの依存関係は、ビルドの動作を次のように変更します。

  • ビルドがキューに入れられると、それがスナップショットに依存するすべてのビルド構成からのビルドも推移的になります。TeamCityはビルドで使用されるリビジョンを決定します(「変更の確認」プロセス)。

  • 一部のビルド構成がすでに一致する変更を伴うビルドを開始しており(「適切なビルド」)、スナップショットの依存関係で「適切なものがあれば、新しいビルドを実行しないでください」オプションがオンになっている場合、TeamCityはキュービルドではなく終了ビルドを使用してキュービルドを最適化します。対応するキューに入れられたビルドはその後静かに削除されます。チェーンのビルドがキューに残っている間に、新しいビルドが開始および終了することがあるため、この手順は複数回実行できます。

  • スナップショット依存関係を介してリンクされているすべてのビルドは、ソースのリビジョンを明示的に指定してTeamCityによって開始されます。リビジョンは、同じ瞬間に対応するように計算されます(同じVCSルートの場合、同じリビジョン番号です)。キュービルドチェーン(スナップショット依存関係にリンクされているすべてのビルド)の場合、使用するリビジョンはビルドをキューに追加した後に決定されます。現時点では、チェーンのすべてのVCSルートの変更がチェックされ、現在のリビジョンはビルドで修正されています。

  • 同じビルド構成を指す同じチェーンから構築するにスナップショット依存関係と成果物依存関係がある場合、TeamCityはsame-sourcesビルドから成果物を確実にダウンロードします。

  • デフォルトでは、ビルドチェーンの一部であるビルドはクリーンアップから保持されますが、これはビルド構成ごとに切り替えることができます。詳細についてはクリーンアップの説明を参照してください。

依存関係に応じて、トポロジ構築は順次または並行して実行できます。

ビルドが失敗した場合のビルドチェーン継続時の動作は、スナップショット依存関係オプションを介してカスタマイズ可能です。失敗した、または依存関係の開始に失敗したそれぞれに対して、4つのオプションのいずれかを選択できます。

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

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

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

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

チェーンのビルドは、dep.<configurationId>.<parameterName> 構文を介して前のビルドのパラメーターを参照できます。

スナップショット依存関係のあるビルドがトリガーされたときにチェーンにパラメーターをプッシュダウンするための特別なサポートがあります。これは、reverse.dep.<configurationId>.<parameterName> 名でパラメーターを定義することによって行われます。

When setting up triggers for the builds in the chain, the recommended approach is: think about the result – the build you want to get at the end of the process, and configure triggers in its corresponding, "top" build configuration. No triggers are necessary in the build configurations this top one depends on, as their builds will be put into the queue automatically when the top one is triggered.
See also the related "Trigger on changes in snapshot dependencies" setting of a VCS trigger and the "Show changes from snapshot dependencies" checkbox in the "Version Control Settings" configuration section.

スナップショットの依存関係がどのように機能するかを説明するための例を考えてみましょう。

AとBの2つのビルド構成があり、構成Aには構成Bに対するスナップショットの依存関係があり、リビジョンの同期が強制されているとします。

  1. 構成Aのビルドがトリガーされると、構成Bのビルドが自動的にトリガーされ、両方のビルドがビルドキューに入れられます。ビルドBが最初に開始され、ビルドAがキューB内で終了するまで待機します( 他の特定のオプションが設定されていない場合)。

  2. ビルドBとAがキューに追加されると、TeamCityはこれらのビルドに含めるようにソースを調整します。すべてのビルドは、ビルドがキューに追加された瞬間に取得されたソースで実行されます。

  3. ビルドBが終了し、正常に終了した場合は、TeamCityはビルドAの実行を開始します。

上記の例では、スナップショット依存関係の基本的な基本を、追加オプションなしで簡単なプロセスとして示しています。スナップショットの依存関係オプションについては、スナップショットの依存関係のページを参照してください。

成果物の依存関係

成果物依存関係は、あるビルドの出力( 成果物)を別のビルドで使用するための便利な手段を提供します。成果物依存関係が構成されると、ビルドが開始される前に必要な成果物がエージェントにダウンロードされます。その後、ビルド結果の依存関係タブを使用して、ビルドでどの成果物が使用されたか、またはどのビルドが現在のビルドの成果物を使用したかを確認できます。

成果物依存関係を作成および構成するには、依存関係ビルド構成設定ページを使用します。ビルドスクリプト内またはローカルにアーティファクトをダウンロードする必要がある場合は、そのためにREST APIまたはIvy Antのタスクを使用できます。

アーティファクトのクリーンアップに関する注意

アーティファクトはされないことがあり清掃それらが構築し、他のことでダウンロードされた場合、これらはまだクリーンアップされていないビルドします。アーティファクトの依存関係が構成されているビルド構成の場合、この構成によって他のビルドからダウンロードされたアーティファクトをクリーニングできるかどうかを指定できます。この設定は、クリーンアップポリシーページで利用できます。

関連ページ:

ビルド・チェーン

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

依存関係を構築する

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

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

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

クリーンアップ

TeamCityのクリーンアップ機能により、古いビルドデータや不要なビルドデータを自動的に削除できます。サーバーのクリーンアップ構成は管理 | サーバー管理 | クリーンアップ設定で使用可能です。クリーンアップスケジュールの設定が可能で、一般的なクリーンアップ情報が表示されます。特定のプロジェクトに...

REST API

TeamCityは、外部アプリケーションを統合し、TeamCityサーバーとのスクリプト相互作用を作成するためのREST APIを提供します。このページは3つのメインセクションで構成されています。一般情報は、REST API認証の原理、リクエストの構造、サポートされるHTTPメソッドについて説明して...