LoginSignup
1
1

More than 3 years have passed since last update.

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

Last updated at Posted at 2019-06-26

はじめに

Develop環境にDeployするものを誤ってProduction環境にDeployしてました:sob:と涙を流さないためのScriptをまずは個人使用のため書いてみました。(ゆくゆくはチームに浸透させるのが目標)

Script書かずとも以下のようにDeploy先がコマンド実行後に表示されるのですが、
ここで気付けたとしても冷や汗もので心に良くない。。。と思っているため書いた次第です:smile:

=== 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してください:smile:

DeployScript

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1