はじめに
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してください