【Rails6】いま、自動デプロイをしないで、いつしますか? ~CircleCIからHerokuへ~
ささっとHerokuへ自動デプロイ
こちらの記事の続きです。
諸々の設定はこちらを参考に。
今回はmasterへマージされたときに、
CircleCIがHerokuへ自動デプロイもやってくれるようにするところまでです。
CircleCIの設定
こちらの記事の後半を参考に進めていきます。
config.ymlの修正
.circleci/config.yml
にHeroku CLIのインストールと
デプロイ用のプッシュとマイグレートのコマンドを追記します。
HerokuCLIはメンテナンスモードとマイグレートする際に必要です。
# Heroku CLIのインストール - run: name: 'Install Heroku CLI, if necessary' command: | if [[ $(command -v heroku) == "" ]]; then curl https://cli-assets.heroku.com/install.sh | sh else echo "Heroku is already installed. No operation was performed." fi # masterブランチのときHerokuにデプロイ - deploy: name: Deploy Master to Heroku command: | if [ "${CIRCLE_BRANCH}" == "master" ]; then heroku maintenance:on --app ${HEROKU_APP_NAME} git push https://heroku:$HEROKU_API_KEY@git.heroku.com/$HEROKU_APP_NAME.git master heroku run rails db:migrate --app ${HEROKU_APP_NAME} heroku maintenance:off --app ${HEROKU_APP_NAME} fi
Herokuの環境変数を取得
HEROKU_APP_NAME
と HEROKU_API_KEY
の設定が必要になります。
HEROKU_APP_NAME
はHerokuで管理しているアプリの名前で、
デプロイ先を示すことになります。
画像の例だと study-roadmap
です。
HEROKU_API_KEY
はAccount settingsのAPI Keyから取得できます。
(Revealを押下するとキーを確認できるようになります。)
CircleCIに環境変数を設定
Keyの設定はプロジェクトの Environment Variables から、
Add Variable を選択することで設定できます。
Name
は HEROKU_APP_NAME
と HEROKU_API_KEY
で、
Value
には先ほど取得した値を設定します。
masterに プッシュ or マージ して結果を待つ。
これで、masterにプッシュ、マージされた際に自動デプロイされるようになりました。
SUCCESSになればOK。
Herokuにデプロイしたアプリもアクセスして確認します。
終わりに
これで CI/CD できた😂