Firebase Hosting

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もコールできることを確認。
完璧である。

インフラばかりで中身の実装が一ミリも進んでない。