やること
題名のままですがFirebase Hosting のWebサイトをcronから定期デプロイします。
調べてみても、CIと連携してGitHubへプッシュしたときに自動デプロイする方法しかなかったのでメモです。
本来サイトの情報更新はFirebaseのデータベースとJavaScriptで行うのが正だと思いますが
更新頻度が少ない & JavaScriptの知識が少ないのでこんな方法を試してみた次第です。
実行環境
- Raspberry Pi 3 Model B
- Raspbian9.4
- Firebase 6.3.1
- Webサイトは作成済みで
Firebase deploy
ができる状態
FIREBASE_TOKENの取得
cronからデプロイする際は認証トークンが必要なのでターミナルで下記を実行。
firebase login:ci
ブラウザが開いたらログイン。
Woohoo! ログイン成功。ターミナルにトークンが表示されます。
+ Success! Use this token to login on a CI server:
1/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <=トークン
Example: firebase deploy --token "$FIREBASE_TOKEN"
cronにタスクを追加
この記事ではシェルスクリプトは作らず直接cronから実行とします。
firebase deploy
の前にfirebase.jsonのあるディレクトリに移動します。
* * * * * cd hoge/hogehoge && firebase deploy --token 1/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
これだけではcronから実行するときのPATHと、ターミナルから実行するときのPATHが
違っていた場合に実行できないのでcron実行時のPATHを指定してやる必要があります。
ターミナルでecho $PATH
を実行し、PATHを確認してcronで指定します。
PATH= 'ここでPATHを設定'
* * * * * cd hoge/hogehoge && firebase deploy --token 1/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
これで定期デプロイができます。
以上、初投稿でした。