Jekyllを使って静的サイトを構築し、Azure Static WebAppへGithubを介してアップするのを試してみた。

環境の構築

WSL2を使い環境の構築を行った

RubyについてはRVMを使ってインストールを実施

curl -sSL https://get.rvm.io | bash

Jekyllについてはドキュメントの通りにインストールし、サイトの構築を行った

Azure Static Web Appsについてはドキュメントの通りに進める。ドキュメント

その後、独自ドメインの設定を行って動作の検証も実施した

留意点など

Github Actionにてビルドサーバのセットアップが実施されるとき、Rubyのインストールは早いがJekyllのインストールがとても遅い。原因はsasscのインストール時にコンパイルが入るため時間がかかっている。

これはJekyllを使う以上どうしようもない。Action内でのサイトのビルドをあきらめれば話は早い。

  • ymlに設定したRuby, BundlerのセットアップとJekyllのビルドタスクをすべてコメントアウト
  • ローカルでサイトを制作した後にBuildを実施し、_site以下にコンテンツを生成してしまう
  • その後、Push時に-site以下も含めて送り込むようにする。これで_site以下がデプロイされる

ということで、この方法を使ってしまえばどのような静的サイトジェネレーターでも一緒になってしまうという残念な感じになってしまう

WSL2の環境でJekyll serveを使うとエラーが起きる。これはProcessがポーリングするところでWSLの実装に起因するエラーのよう。以下のコマンドを使えばエラーを回避して開発サーバを可動させることができる。

bundle exec jekyll serve --force_polling --livereload

forc_pollingというのがポイントとなる

参照: https://github.com/microsoft/WSL/issues/216

Jekyll to Azure blob Strage

Azure CLIを使えば、普通にコンテンツをアップロードできる

Deploying Jekyll Websites on Azure Blob Storage