🐙
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