TeamCity 4.0 ヘルプ

依存関係の設定

ビルド構成は、他のいくつかのビルド構成のアーティファクトまたはビルドのソースに依存するようにできます。

TeamCity は、依存するビルドが開始された時点で取得されたソースですべての依存ビルドを実行します。

ビルドの実行が開始される前に、ビルドが依存するすべてのアーティファクトがダウンロードされ、構成されたターゲットの場所に配置され、ビルドで使用できるようになります。

アーティファクトの依存関係の構成

アーティファクトの依存関係を定義するには 2 つの方法があります。

  • Web UI の使用

  • コマンドラインから Ivy タスクまたは Ivy ツールを使用する Ant ビルドスクリプトの使用

Web Web UI の使用

ビルド構成に依存関係を追加するには:

  1. 作成ビルド構成の編集を開きます。

  2. ビルド構成の手順では、5.Dependencies を選択します。

  3. ページのアーティファクトの依存関係セクションにある新しい依存関係を追加するリンクをクリックします。

  4. 5.Dependencies で、次の設定を指定します。

    • ビルド構成とアーティファクトの取得元となるビルド

    • サーバー上に表示されるアーティファクトへのパス

    • ダウンロードしたアーティファクトを配置するエージェント上の宛先パス

Ant ビルドスクリプトを使用した XML

このセクションでは、ビルドスクリプト内で TeamCity ビルドアーティファクトをダウンロードする方法について説明します。これらの命令は、TeamCity の外部からアーティファクトをダウンロードするためにも使用できます。

ビルド間のアーティファクトの依存関係を処理する場合、このソリューションは TeamCity UI で依存関係を構成するよりも複雑ですが、柔軟性が高くなります。例: この方法で依存関係を管理すると、個人用ビルドを開始して、ビルドが依存関係と互換性があることを確認できるようになります。

Ant ビルドスクリプトを介して依存関係を構成するには: 1. Ivy をダウンロードしてください。

2. Ivy をビルドのクラスパスに追加します。3. TeamCity リポジトリに関するメタ情報を含む ivyconf.xml ファイルを作成します。このファイルには次の内容が含まれている必要があります。

<ivysettings> <property name='ivy.checksums' value=''/> <caches defaultCache="${teamcity.build.tempDir}/.ivy/cache"/> <statuses> <status name='integration' integration='true'/> </statuses> <resolvers> <url name='teamcity-rep' alwaysCheckExactRevision='yes' checkmodified='true'> <ivy pattern='http://YOUR_TEAMCITY_HOST_NAME/httpAuth/repository/download/[module]/[revision]/teamcity-ivy.xml' /> <artifact pattern='http://YOUR_TEAMCITY_HOST_NAME/httpAuth/repository/download/[module]/[revision]/[artifact](.[ext])' /> </url> </resolvers> <modules> <module organisation='.*' name='.*' matcher='regexp' resolver='teamcity-rep' /> </modules> </ivysettings>

4. YOUR_TEAMCITY_HOST_NAME を TeamCity サーバーのホスト名に置き換えます。5. build.xml が実行されるディレクトリに ivyconf.xml を配置します。6. 同じディレクトリに ivy.xml ファイルを作成し、どのアーティファクトをダウンロードし、どこに配置するかを定義します。例:

<ivy-module version="1.3"> <info organisation="YOUR_ORGANIZATION" module="YOUR_MODULE"/> <dependencies> <dependency org="org" name="BUILD_CONFIGURATION_ID" rev="BUILD_REVISION"> <include name="ARTIFACT_FILE_NAME_WITHOUT_EXTENSION" ext="ARTIFACT_FILE_NAME_EXTENSION" matcher="exactOrRegexp"/> </dependency> </dependencies> </ivy-module>

説明:

  • YOUR_ORGANIZATION は組織の名前に置き換える必要があります。

  • YOUR_MODULE should は、アーティファクトが使用されるプロジェクトまたはモジュールの名前に置き換えます。

  • BUILD_CONFIGURATION_ID は、アーティファクトのダウンロード元のビルド構成の ID に置き換える必要があります。この ID は、TeamCity サーバーのリンクから取得できます (buildTypeId パラメーターの値を取得する必要があります)。例: bt20

  • BUILD_REVISION には、ビルド番号または次の文字列のいずれかを指定できます。

    • latest.lastFinished

    • latest.lastSuccessful

    • latest.lastPinned

  • ARTIFACT_FILE_NAME_WITHOUT_EXTENSION 拡張子部分を除いたアーティファクトのファイル名または正規表現。

  • ARTIFACT_FILE_NAME_EXTENSION アーティファクトファイル名の拡張子部分。

7. build.xml ファイルを変更し、アーティファクトをダウンロードするためのタスクを追加します。たとえば(Ant 1.6 以降に適用可能):

<target name="fetchArtifacts" description="Retrieves artifacts for TeamCity" xmlns:ivy="antlib:fr.jayasoft.ivy.ant"> <taskdef uri="antlib:fr.jayasoft.ivy.ant" resource="fr/jayasoft/ivy/ant/antlib.xml"> <classpath> <pathelement location="${basedir}/lib/ivy-2.0.jar"/> <pathelement location="${basedir}/lib/commons-httpclient-3.0.1.jar"/> <pathelement location="${basedir}/lib/commons-logging.jar"/> <pathelement location="${basedir}/lib/commons-codec-1.3.jar"/> </classpath> </taskdef> <ivy:configure file="${basedir}/ivyconf.xml" /> <ivy:retrieve pattern="${basedir}/[artifact].[ext]"/> </target>

アーティファクトリポジトリは、基本認証によって保護されています。アーティファクトにアクセスするには、<ivy:configure/> タスクに資格情報を提供する必要があります。例:

<ivy:configure file="${basedir}/ivyconf.xml" host="TEAMCITY_HOST" realm="TeamCity" username="USER_ID" passwd="PASSWORD"/>

ここで、TEAMCITY_HOST は TeamCity サーバーのホスト名または IP アドレスです (ポートとサーブレットコンテキストは含まれません)。USER_ID/PASSWORD として、通常の TeamCity ユーザー (ユーザーはソースビルド構成のアーティファクトにアクセスするための対応する権限を持っている必要があります) のユーザー名 / パスワード、またはシステムプロパティ teamcity.auth.userId/teamcity.auth.password のいずれかを使用できます。

プロパティ teamcity.auth.userId/teamcity.auth.password には、自動的に生成されたビルド固有の値が格納されます。この値の唯一の使用目的は、ビルドスクリプト内でアーティファクトをダウンロードすることです。値は、ビルドの実行中にのみ有効です。プロパティを使用すると、サーバーがビルドによってダウンロードされたアーティファクトを追跡できるため、実際のユーザー資格情報を使用するよりも推奨されます。アーティファクトがビルド構成アーティファクトの依存関係によって、または提供されたプロパティを使用してダウンロードされた場合、ビルドで使用される特定のアーティファクトが依存関係タブに表示されます。さらに、アーティファクトの取得に使用されたビルドは、固定されたビルドと同様に、クリーンアッププロセスによってクリーンアップされません。

関連ページ:

作成ビルド構成の編集

「管理」>「ビルド構成の作成」「管理」><プロジェクト>> ビルド構成の作成プロジェクト><ビルド構成名>> 構成設定の編集共通コントロール:「実行」ボタンをクリックして、次に使用可能なエージェントでビルドを開始します。「実行」ボタンの右側にある矢印をクリックして、互換性のあるビルドエージェントのドロップダウンリストを表示します。このリストを使用して、ビルドを実行する特定のエージェントを選択します。ビルド構成ホームこのリンクをクリックしてビル...

5.Dependencies

「管理」><ビルド構成>> 「依存関係」uiDependencyBySources スナップショットの依存関係:他のビルドのソースによる依存関係を設定すると、依存元のソースが実行されて終了した後にのみビルドが開始されるようにすることができます。TeamCity は、ビルドが同じ時点に対応するソースを使用しているかどうかもチェックします。依存関係のメカニズムは次のとおりです。ビルドが (手動で、または利用可能なトリガーのいずれかによって) トリガーされると、「ソースの依存関...

依存関係タブ

ビルドにアーティファクトやソースの依存関係がある場合、依存関係タブがビルド結果ページに表示されます。このページには、特定のビルドの作成に使用されたアーティファクトおよび / またはソースのビルドと、現在のビルドのアーティファクトおよび / またはソースを使用したビルドが表示されます。間接依存関係の表示現在のビルドが間接的に依存しているすべてのビルドを表示するオプションを有効にします。つまり、たとえば、ビルド A がビルド B に依存し、そのビルド B がビルド C と D に依存する場合、これら...