Netlify.toml で Netlify の Deploy 設定を管理する

Netlifuy.toml を利用して Netlify のデプロイ設定をコードベースで管理する方法を紹介します。

Netlify の デプロイ設定

Netlify は静的サイト配信向けの Webサービスとして広く利用されているもので、 Github 等のリポジトリと連携して、リポジトリの更新に合わせて自動的にサイトを更新することができる便利なサービスです。

Netilfy では Web上の画面を通じて、 デプロイ時に実行するコマンドや配信フォルダ、環境変数の設定などを行うことができるのですが、 これらを全てWeb上のGUIだけで操作するのは、場合によっては不便なケースもあります。

こうした情報をコードベースで管理するには、 設定ファイルのnetlify.toml を利用するのが便利です。

Netlify.tomlの利用

リポジトリのルートに netlify.toml という名前でファイルを作成すると、 Netlify は自動的にデプロイ時にファイルを検出し、設定ファイルとして取り込みます。

Netlify.toml の内容は以下のような形になります。

[build]
  publish = "dist"
  command = "npm run build"

[build.environment]
  FRONT_API_URL="https://example.com/"

buildはビルド時に実行するコマンドや、配信フォルダを指定するディレクトリです。

また、build.environment ディレクトリに、 ビルド環境で利用する環境変数等を指定することができます。

netlify.tomlファイルが存在するリポジトリをNetlify上で配信する場合、 GUI 上での設定はマージされるのではなく完全に無視されます。

auto publishing の設定等、デプロイ周りの完全は、 netlify.toml上のものが完全に正となるため、注意してください。

Deploy Context の利用

Netlify の特徴の一つとして、一つのGitリポジトリから ブランチ等に応じた様々な環境を生成することができる、という機能があります。

ブランチやPRベースで生成される各環境に応じて、 異なる設定を行いたい場合にも、netlify.toml が利用されます。

[context.production]
  command = "npm run build"

[context.deploy-preview]
  command = "npm run preview"

[context.branch-deploy]
  command = "npm run dev"

上記の様に context.*** のディレクトリで設定を記載することで、 デフォルトの build の設定を上書きすることができます。

production は production で指定したブランチのデプロイ時に、 deploy-preview は 各種 PR に反応してデプロイされる環境に、 branch-deploy は production 以外のブランチやタグに反応して行われるデプロイ時に適用されます。

デプロイステージごとに 環境変数を切り替える場合 environment ディレクトリで値を設定します。

[context.production.environment]
  FRONT_API_URL="xxxxxxx"

branch-deploy コンテキストについては、ブランチ名を指定しての操作も可能です。

[context.master.environment]
  FRONT_API_URL="xxxxxxx"
[context.dev.environment]
  FRONT_API_URL="xxxxxxx"

投稿一覧へ