このチュートリアルでは、TeamCity のアーティファクトルールについて説明します。 アーティファクトルールは単純ではありますが、考慮が必要となる微妙な設定がいくつかあります。
このビルドでアーティファクトアイコンにマウスポインターを合わせると、フォルダー構造のない 2 つのアーティファクトがあるのがわかります。アプリケーションログファイルと Selenium の .mp4 録画です。
Build Configuration settings(ビルド構成の設定)| Artifact paths(アーティファクトのパス)に移動すると、どちらのアーティファクトも calculator-service/artifacts/* のディレクトリを起点としているのがわかります。
アーティファクトのパスは、さまざまなオプションで指定できます。 たとえば、以下のようなオプションがあります。
+:**/* => target_directory
-:directory1 => target_directory
これらは TeamCity にdirectory1 を除くすべてのファイルを target_directory に公開するように指示するものです。
この例では、calculator ディレクトリ内のすべての項目を含めて、各ビルドが持つアーティファクトフォルダーにそれを入れるように TeamCity に指示しています。 このフォルダーは、Amazon S3 またはその他のストレージプロバイダーに格納されている場合があります。
以下の 2 行は同等です。
別のアーティファクトパスを指定してみましょう。 artifacts サブフォルダー内のすべての項目を含める代わりに、ファイルを another_directory に移動するように TeamCity に指示します。 また、.log ファイル除外して、ストレージにコピーされないように指示します。
これらのルールは累積されるため、ここでは各ファイルを含めてから別のディレクトリに移動するように TeamCity に指示しています。 さらに、.log ファイルを除外することも TeamCity に指示しています。
最後に、別のルールを追加してみましょう。
+:calculator-service/**/application.log => hello_world/whatever.log
このルールでは、calculator-service ディレクトリ内のすべてのサブディレクトリ ** にある application.log アプリケーションログを hello_world フォルダーに入れるように TeamCity に指示しています。 また、application.log ファイルの名前を whatever.log に変更するようにも TeamCity に指示しています。
この変更を保存してビルドを実行すると、アーティファクトのストレージパスが変更されたのを確認できます。 これで、アーティファクトが異なるフォルダーとサブディレクトリに保存されるように設定されました。
はじめてのビルドパイプラインの作成と Jira などの外部プラットフォームへのビルド情報の送信に関する他のチュートリアルもご覧ください。
詳細については、TeamCity のアーティファクト依存関係ドキュメントをご覧ください。
TeamCity CI/CD ガイドの「アーティファクトリポジトリとは?」をご覧ください。