🐙
Hugoで作ってる静的WebサイトをGitHub ActionsでFirebase Hostingにデプロイした
Firebase のプロジェクトを作成
- コンソールから Firebase のプロジェクトを作成
- コンソールから Firebase Hosting を有効化
ローカル
- Hugo で作っている静的 Web サイトの root で
firebase init -
firebase init hosting:githubで Firebase Hosting と GitHub のリポジトリを連携[1]- GitHub Actions のワークフローの生成、GitHub の secrets への登録が自動で完了する
- PR 作成時にプレビュー可能な URL を発行してくれるワークフローと、マージ時にデプロイするワークフローが生成される
ドメイン
-
txtに Firebase Hosting で指定されるキーを入力して認証- このキーは認証完了後も消さないようにする
- 認証が完了したら、Firebase Hosting の指定どおりに A レコードを設定
GitHub Actions のワークフローを修正
- Firebase Hosting はデフォルトで root 直下の
publicを公開する。Hugo の公開ディレクトリがpublicじゃなければ、Firebase Hosting か Hugo のどちらかをまたは両方を修正- 自分は両方
publicだったので問題なし
- 自分は両方
- Firebase Hosting のデプロイ前に
publicに Hugo で静的 Web サイトを生成- 自分はこちらのアクションを使ってます
GitHub Pages の削除
- GitHub Pages の時に使っていたワークフローやブランチや設定を削除
-
自分はここでちょっとハマりました。
firebase-toolsをアップデートした後、Firebase CLI の認証がおかしくなったのでfirebase logoutした後にもう一度firebase loginをやり直す。firebase-toolsが8.7.0までしかアップデートできず、hosting:githubができなかったので(Node.js 周りの環境構築がおかしかったっぽい。普段使ってないので最初適当にセットアップしたくさい)、curl -sL firebase.tools | upgrade=true bashで直接最新バージョンをインストール。これでhosting:githubが使えるようになった。 ↩︎
Discussion