Edited at

FirebaseCLIでDeployするとき「これ本番に向いてるやんけ!」と気付けるScript


はじめに

Develop環境にDeployするものを誤ってProduction環境にDeployしてました

と涙を流さないためのScriptをまずは個人使用のため書いてみました。(ゆくゆくはチームに浸透させるのが目標)

Script書かずとも以下のようにDeploy先がコマンド実行後に表示されるのですが、

ここで気付けたとしても冷や汗もので心に良くない。。。と思っているため書いた次第です

=== Deploying to 'xxxxxx-development'...

個人的に、コマンドを覚え何度かDeployしてくるとDepoly慣れにより油断してやらかさないようにしてる予防線みたいなものなのですがこんな感じのScript書いてますという記事です。


Script

基本的には、firebase useでDeploy先を確認しproductionだった場合は確認を取り

Deployしたいのはall,function,rule,hostingのうちどれなのか、functionの場合は全ての関数なのか指定した関数なのかといった具合に対話形式でDeployできるようにしてます!

#!/bin/bash

function main() {
local DEPLOY_TARGET=`firebase target`
if echo $DEPLOY_TARGET | grep "production"; then
echo "Do you want to deploy in a production environment?(y/n)"
read answer
case $answer in
y | Y)
select_deploy_part
;;
n | N)
echo "bye!"
;;
esac
else
select_deploy_part
fi
}

function check_target_function() {
echo "If you want to deploy only a specific function, please enter the function name"
echo "If you press Enter without input, all functions will be deployed"
read function_name
if [ $function_name ]; then
firebase deploy --only functions:$function_name
else
firebase deploy --only functions
fi
}

function start_deploy() {
case $1 in
firestore:rules | hosting)
firebase deploy --only $1
;;
functions)
check_target_function
;;
all)
firebase deploy
;;
*)
echo "bye"
;;
esac
}

function select_deploy_part() {
echo "Please select the target number you want to deploy"
local PART_LIST="firestore:rules hosting functions all"
select selection in $PART_LIST
do
if
[ $selection ]; then
start_deploy $selection
break
else
echo "invalid selection."
echo "bye!"
break
fi
done

}

main


最後に

使っていくうちにもっと良い方法を見つけたり,他の方からご指摘いただいた内容を反映してどんどん進化させていくので気になる方はぜひWatchしてください

DeployScript