Skip to content
Latchkey

ビルドステージとは何か?コンパイルとパッケージのフェーズ

ビルドステージとは、テストやデプロイの前に、ソースコードをコンパイル済みバイナリやコンテナイメージなどの実行可能なartifactに変えるパイプラインのフェーズです。

ほとんどのパイプラインはビルドステージで始まります。ここでソースが、実行または出荷できるものになります。コードのコンパイル、assetのバンドル、コンテナイメージのビルドです。その後のすべてがそれに依存するので、ビルドステージは通常最初に来て、その出力(artifact)はtestとdeployのステージへdownstreamに流れます。

ビルドステージで何が起こるか

  • ビルドが必要とする依存関係をインストールする。
  • ソースコードをコンパイルまたはトランスパイルする。
  • assetをバンドルし、出力をパッケージ化する。
  • 後のステージのためのartifactを生成する。

なぜ最初に来るか

ビルドされていないものはテストもデプロイもできません。ビルドステージは、testステージが動かし、deployステージが出荷するartifactを生成します。ビルドの失敗は、後のどのステージも実行される前にパイプラインを止めます。

簡単な例

Nodeのビルドステージは npm ci を実行し、次に npm run build を実行して、artifactとしてアップロードされる dist/ フォルダを生成します。testステージは dist/ をダウンロードしてそれに対して実行し、deployステージは同じartifactを出荷します。

一度ビルドし、どこでも使う

良いプラクティスは、ステージごとに再ビルドするのではなく、artifactを一度ビルドしてすべての後のステージで再利用することです。これはtestと本番が全く同じビットを実行することを保証し、繰り返しビルドのコストを節約します。

ビルドステージの速度

ビルドは、依存関係のインストールとコンパイルのために最も遅いステージであることが多いです。依存関係とbuild layerのキャッシュが最大のレバーです。マネージドランナー(Latchkey)はそれらのキャッシュをウォームに保つので、ビルドステージはコールドな状態ではなく準備された状態から始まります。

重要なポイント

  • ビルドステージは、testとdeployの前にソースを実行可能なartifactに変えます。
  • 後のステージがその出力に依存するので、最初に来ます。
  • artifactを一度ビルドし、一貫性と速度のためにdownstreamで再利用します。

関連ガイド