Skip to content
Latchkey

ビルドアーティファクトとは?

ビルドアーティファクトとは、pipeline が生成し、保持または受け渡したいと考えるあらゆるファイルのことです - コンパイル済みバイナリ、パッケージ化されたイメージ、カバレッジレポートなど。

CI の job は、隔離された使い捨ての環境で実行されます。job が生成したものは、アーティファクトとして保存されない限り、終了時にすべて消えてしまいます。アーティファクトは、出力が job を越えて生き残り、後続の job、release、あるいは人間のレビュアーに届くための手段です。

何がアーティファクトに当たるか

  • build の出力: バイナリ、JAR、Docker イメージ、静的サイトのバンドル。
  • レポート: テスト結果、カバレッジ、セキュリティスキャン、ログ。
  • 実行後にダウンロード、deploy、または確認したいあらゆるもの。

job 間でのアーティファクトの受け渡し

build の job がアーティファクトをアップロードし、後続のテストまたは deploy の job がそれをダウンロードします。これにより、各 job で build をやり直すのではなく、一度 build して同じ出力を複数の job への fan-out にわたって再利用できます。

小さな例

build の job が name: distpath: dist/ を指定して upload-artifact を実行します。下流のテストと deploy の job は同じ名前で download-artifact を実行し、build された正確なバイト列を取得します - これにより、同じ出力をテストして出荷することが保証されます。

アーティファクト vs cache

cache は最適化です - 存在しなくても job は動作し、単に遅くなるだけです。アーティファクトは成果物です - 存在しなければ、下流の job は進めません。release 可能な出力を cache に保存してはいけません。

命名とサイズ

アーティファクトには明確で一意な名前を付け(特に matrix のセル間では、そうしないと衝突します)、無駄なく保ちましょう。不要なファイルを数ギガバイトもアップロードすると、依存するすべての job が遅くなり、ストレージコストが膨らみます。

重要なポイント

  • アーティファクトとは、pipeline が生成し、job を越えて保持するファイルです。
  • アーティファクトは出力を job 間で受け渡すため、一度 build して再利用できます。
  • アーティファクトは成果物であり、cache は任意の最適化です。

関連ガイド