再三あちこちで言われているハマりポイントだが、見落としがあったので自分用にメモ。

Hugo の theme(テーマ) は git submodule として保存すること

git clone はせずに、 git submodule とする。

Host on Netlify | Hugo

基本的に submodule を含むリポジトリを clone する際は clone時に --recursive オプションを指定する必要があるが、Netlify では指定せずとも再帰的に clone を行なってくれる。(というより指定することができない) Working with submodules - The GitHub Blog

netlify.toml を置こう

これはあまり言及している記事がなかった。

NetlifyにHugoのバージョンを指定する必要があるのだが、多くの記事ではNetlifyの管理コンソール上で

HUGO_VERSION : 0.xx

と指定することを推奨しているが、この点に関してHUGO公式サイトでは netlify.tomlファイルで指定することを推奨している。

そのほかにもビルド時のコマンド

hugo -D

などについても toml ファイルで指定できるため、管理上こちらを推奨。

Host on Netlify | Hugo

ビルド時はテーマオプションの指定 --theme=xxx の指定を忘れなきよう

Hugoをローカルでしか触ったことがなかったため、毎度

hugo server -D

としか実行していなかったが、build 時にはテーマを指定しないとテーマが当たってくれない。

これは config.toml

theme = "xxx"

とだけ書いてあってもダメで、build時にオプション指定されるように netlify.toml

command = "hugo --theme=xxx -D"

と指定してやる必要がある。(もしくはNetlifyの管理コンソール上でbuild時のコマンドを指定する )

所感

  • CDサービスは使用したことがなかったので、サーバー上でbuildされていることに対しては感銘を受ける反面、build結果ファイルが(おそらく)確認できないことに対しては不安を覚える。 現にNetlify環境でなぜかテーマが当たらず原因究明のためにbuildファイルを確認したかったのだが閲覧方法がわからずに、手当たり次第に原因を探ることとなった。
  • CI/CDサービス特有のbuild時にログが流れる瞬間はとても気持ちいい。急いでいるときはイライラする?

追記 2019.07.12

下記動画を参考に、カスタムドメインを設定しました。 Deploy a site in minutes with Netlify, GitHub, and Freenom!
ブログ記事などいろいろみたのですが、こちらの動画が一番わかりやすかったです。