amatsukixブログ

【Rails6】いま、自動デプロイをしないで、いつしますか? ~CircleCIからHerokuへ~

ささっとHerokuへ自動デプロイ

amatsukixprog.hatenablog.jp

こちらの記事の続きです。
諸々の設定はこちらを参考に。

今回はmasterへマージされたときに、
CircleCIがHerokuへ自動デプロイもやってくれるようにするところまでです。

CircleCIの設定

こちらの記事の後半を参考に進めていきます。

tic40.hatenablog.com

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_NAMEHEROKU_API_KEY の設定が必要になります。

HEROKU_APP_NAME はHerokuで管理しているアプリの名前で、
デプロイ先を示すことになります。

画像の例だと study-roadmap です。

heroku-app-name
Heroku App Name

HEROKU_API_KEY はAccount settingsのAPI Keyから取得できます。
(Revealを押下するとキーを確認できるようになります。)

heroku-environment-value
Heroku API Key

CircleCIに環境変数を設定

Keyの設定はプロジェクトの Environment Variables から、
Add Variable を選択することで設定できます。

NameHEROKU_APP_NAMEHEROKU_API_KEYで、 Value には先ほど取得した値を設定します。

circleci-value
環境変数の設定

masterに プッシュ or マージ して結果を待つ。

これで、masterにプッシュ、マージされた際に自動デプロイされるようになりました。

SUCCESSになればOK。
Herokuにデプロイしたアプリもアクセスして確認します。

終わりに

これで CI/CD できた😂

参考記事

https://qiita.com/kei_f_1996/items/934296e23b0d8d877ff1