Firebase Hositing
apiサーバでSPAもホストしちゃえばいいじゃんと思っていたけど負荷の監視とか今後のことを考えると別にしたほうがいいのかなあ、と思ってググってたら、firebase hostingを発見。
OAuthで使おうと思ってプロジェクトだけ作っていたが、Hostingも出来るのですね。
GithubActionに対応している
firebase init hosting
するときに「github actions作る?」みたいなこと聞かれたのですかさずyes!と回答したらworkflow
ファイルを自動生成してくれた。
必要なsecretなんかもgithubに勝手に追加してくれる。最高かよ。
ただそのままだとビルド時にflutter
コマンドがないってエラーが出るのでflutter
のインストールタスクだけ手動で追加が必要。
# This file was auto-generated by the Firebase CLI
# https://github.com/firebase/firebase-tools
name: Deploy to Firebase Hosting on merge
"on":
push:
branches:
- master
jobs:
build_and_deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Install Flutter
run: git clone https://github.com/flutter/flutter.git
- name: Add path
run: echo "$(pwd)/flutter/bin" >> $GITHUB_PATH
- name: Download Flutter packages
run: flutter pub get
working-directory: ./clientapp
- run: "flutter build web --dart-define=BASE_URL=${{secrets.APP_IP}}"
working-directory: ./clientapp
- uses: FirebaseExtended/action-hosting-deploy@v0
with:
repoToken: "${{ secrets.GITHUB_TOKEN }}"
firebaseServiceAccount: "${{ secrets.FIREBASE_SERVICE_ACCOUNT_STEPS_C8BDA }}"
channelId: live
projectId: XXXXXX
env:
FIREBASE_CLI_PREVIEWS: hostingchannels
おじさんの感想
あとはgithubにpushすると勝手にfirebaseのプロジェクトにデプロイされる。
Firebaseってもしかして必須の知見なのでは?
APIサーバにCORSの設定すればAPIもコールできることを確認。
完璧である。
インフラばかりで中身の実装が一ミリも進んでない。