1からFirebase Hosting + Basic認証のdeployをGithub Actionsで自動化する
はじめに
参考にさせた頂いた記事 qiita.com qiita.com
手動deployまで
まず最初の記事を参考にFirebaseで新規プロジェクトを作成します。
基本的に手順に従っていれば問題ないです。
ちなみに注意点として、
公開したいフォルダをfunctions以下にしないとうまくできませんでした。(正しいやり方があるとはおもうのですが…)
[本題] Github Actionsでdeploy
.github/workflows/nodejs.yml
を追加する部分ですが、私はこの記事通りコピペしてもPermissionで怒られて動作しませんでした。(2020/04/01現在)
私はnode.jsのbuildは不要ですので、 npm install 解決方法 を参考にしながら、以下のように.ymlファイルを作成しました。
name: Node CI on: push: branches: - master jobs: deploy_to_firebase_hosting: runs-on: ubuntu-latest strategy: matrix: node-version: [12.x] steps: - name: Checkout the repository uses: actions/checkout@master - name: Deploy to Firebase run: | mkdir ~/.npm-global npm config set prefix '~/.npm-global' export PATH="$HOME/.npm-global/bin:$PATH" npm install -g npm npm install -g firebase-tools cd functions npm install --save express npm install --save basic-auth-connect cd .. firebase deploy --token $FIREBASE_TOKEN env: FIREBASE_TOKEN: ${{ secrets.FIREBASE_TOKEN }}
あとは、記事通りFIREBASE_TOKENだけGithubの環境変数に追加したら準備完了です。
(今回は公開するだけなので、PASSWORDは不要)
masterにpushすると自動deployが走り、勝手に公開されるようになっています。
CIの注意点
この.ymlを書いていてハマったのが、各stepのrunの環境変数などは引き継がれないらしく、exportしても、.bashrc
に追記しても別のrunで反映されなかったため、runを一つにまとめました。
もしbuildをするなら、その点注意が必要です。(各runの最初でpathを設定など)
最後に
もしFirebase functionなどを使わないで、シンプルにdeployする時なんかは以下のリポジトリを使うと便利かもしれません。