アーティファクトルールの操作方法

このチュートリアルでは、TeamCity のアーティファクトルールについて説明します。 アーティファクトルールは単純ではありますが、考慮が必要となる微妙な設定がいくつかあります。

このビルドでアーティファクトアイコンにマウスポインターを合わせると、フォルダー構造のない 2 つのアーティファクトがあるのがわかります。アプリケーションログファイルと Selenium の .mp4 録画です。

tutorials-img

Build Configuration settings(ビルド構成の設定)| Artifact paths(アーティファクトのパス)に移動すると、どちらのアーティファクトも calculator-service/artifacts/* のディレクトリを起点としているのがわかります。

tutorials-img

アーティファクトのパスは、さまざまなオプションで指定できます。 たとえば、以下のようなオプションがあります。

+:**/* => target_directory

-:directory1 => target_directory

これらは TeamCity にdirectory1 を除くすべてのファイルを target_directory に公開するように指示するものです。

この例では、calculator ディレクトリ内のすべての項目を含めて、各ビルドが持つアーティファクトフォルダーにそれを入れるように TeamCity に指示しています。 このフォルダーは、Amazon S3 またはその他のストレージプロバイダーに格納されている場合があります。

以下の 2 行は同等です。

tutorials-img

別のアーティファクトパスを指定してみましょう。 artifacts サブフォルダー内のすべての項目を含める代わりに、ファイルを another_directory に移動するように TeamCity に指示します。 また、.log ファイル除外して、ストレージにコピーされないように指示します。

tutorials-img

これらのルールは累積されるため、ここでは各ファイルを含めてから別のディレクトリに移動するように TeamCity に指示しています。 さらに、.log ファイルを除外することも TeamCity に指示しています。

最後に、別のルールを追加してみましょう。

+:calculator-service/**/application.log => hello_world/whatever.log

tutorials-img

このルールでは、calculator-service ディレクトリ内のすべてのサブディレクトリ ** にある application.log アプリケーションログを hello_world フォルダーに入れるように TeamCity に指示しています。 また、application.log ファイルの名前を whatever.log に変更するようにも TeamCity に指示しています。

この変更を保存してビルドを実行すると、アーティファクトのストレージパスが変更されたのを確認できます。 これで、アーティファクトが異なるフォルダーとサブディレクトリに保存されるように設定されました。

tutorials-img

はじめてのビルドパイプラインの作成と Jira などの外部プラットフォームへのビルド情報の送信に関する他のチュートリアルもご覧ください。

詳細については、TeamCity のアーティファクト依存関係ドキュメントをご覧ください。

TeamCity CI/CD ガイドの「アーティファクトリポジトリとは?」をご覧ください。