概要 🔗
既存の Hugo で運営しているウェブサイトはそのまま放置しつつ、Qwiklabsを参考にしながら CI/CD 運用に変更したい。個人で運用する弱小ウェブサイトなら無料のままある程度までは成長できるでしょうという目算。
※まさか Qwiklabs にコースがあるとは思わなくて普通にネットで調べていた…
手順 🔗
Qwiklabs のコースそのままやればサクッと作れるとは思うけど、自分が再度環境を構築する時などもあると思うので。
- Firebase 側からプロジェクトを生成
- 作成したプロジェクトを課金設定
- local 環境で gcloud auth、gloud config list project あたりで設定を確認
- Cloud Repository 作成と clone
|
|
- local 環境へ hugo install。Cloud Source Registries から clone した段階でディレクトリが作成されているので force 指定する
|
|
- Hugo theme 設定(参考 : hugo 公式サイト)
|
|
- firebase 設定
|
|
ここで firebase tool を入れなくても大丈夫ですが、このステップを入れることで
- .firebaserc
- firebase.json
が生成されます。この 2 ファイルを置いておけば構築できます。
■ .firebaserc
|
|
■ firebase.json
|
|
- Cloud Build 設定。hugo の TOP ディレクトリに
cloudbuild.yaml
ファイルを作成し、次のコードを保存
|
|
- Cloud Source Repositories へのコミット
|
|
- Cloud Build API を有効化
- Cloud Build Trigger 設定
項目 | 設定 |
---|---|
イベント | ブランチに push する |
ソース | ^master$ |
ビルド構成 | cloudbuild.yaml |
代入変数 : _FIREBASE_PROJECT_NAME | Firebase のプロジェクト名 |
- IAM 設定変更。IAM の
cloudbuild.gserviceaccount.com
を含むアカウントに[Firebase プロダクト] > [Firebase Hosting 管理者]
を追加する。
もし cloudbuild.gserviceaccount.com
を含むアカウントが存在しない場合は API で以下を許可する必要がある
- Cloud Build
- Cloud Source Repositories
- 設定完了なので、テストで cloud source repositories へ push してみる
トラブルシューティングメモ 🔗
- CloudBuild で HTML 生成に伴う layout エラーが発生した場合
テキストエディタの自動フォーマットが悪影響を及ぼしている可能性があります。
それでも解決できない場合は、themes ディレクトリ配下の layouts フォルダの中身を hugo の TOP ディレクトリにある layouts フォルダにコピーしてみてください。
コピーした場合は themes 内の layouts フォルダは .gitignore
で指定してしまって大丈夫です。
- css がうまく適用されない
themes フォルダ内の static フォルダデータを hugo の TOP ディレクトリにある static フォルダへコピーし config.toml
ファイルで custom css を適用するのと同様に params 指定をしてみてください。
コピーした場合は themes 内の static フォルダは .gitignore
で指定してしまって大丈夫です。
|
|