【CircleCI】Run rspecテスト失敗から解決に向けて設定した環境変数(2/2)


問題

ローカルでは問題なくパスするテストが、CircleCIでのRun rspecでエラーとなった。

前回、

  • .circleci/config.ymlへの設定
  • Dockerfile.devへの設定
  • docker-compose.ci.ymlへの設定

といった設定を行った、こちらの続き

CircleCI管理画面より設定

Settings >user_name >app_name > Environment Variables

  • HEROKU_API_KEY
  • RAILS_MASTER_KEY

を追加

デプロイされたアプリの確認

HerokuアプリのURLは、CircleCIの、heroku_deployの、

heroku_deployの部分をクリックして、

実行項目の中の、Deployの中の下の方にある。

現在の環境では、CircleCIでデプロイが完了するたびに、新しいアプリがheroku上に作成されるよう、.circleci/config.ymlに設定されている為、こちらで確認するようにしている。

次は、herokuにデプロイしたアプリが表示されない、、

よしログを確認しよう。

CircleCIを使用していない場合は、Herokuの、

こちらから確認するが、

CircleCIを使用している場合は、先程のCircleCIのheroku_deployの下に、

Run post-deploy tasks、という項目があるので、こちらから確認できる。

内容を確認すると、

undefined method `[]' for nil:NilClass (NoMethodError)

該当のファイルの5行目を確認すると、環境変数を呼び出している行であることがわかる。

Herokuの環境変数確認・登録

heroku上に登録する環境変数

ターミナルで確認

$ heroku config

登録のある環境変数一覧を確認。
RAILS_MASTER_KEY:
SECRET_KEY_BASE:

登録

$ heroku config:set 環境変数名=value

ちなみに、、
登録の削除は

$ heroku config:unset 環境変数名

ここまでで、無事にアプリを表示することができるようになった。
今回は、開発の途中でローカルにて、環境変数を設定し、管理をbash_profileからconfig/credentials.yml.encに変更した事と、変数の設定を後回しにして実装を急いでしまった事が原因でした。

これからは、環境変数を使用すると同時に、これらの登録を先に行い、デプロイまでが通過するか、確認するようにしたいと思います、、

また、ローカルではエラーが無くて、CircleCIやデプロイ後に動かない場合は、環境変数を真っ先に疑おうと思い始めました。

終わりに。

最後まで読んで頂きありがとうございます
転職の為、未経験の状態からRailsを学習しております。正しい知識を着実に身に着け、実力のあるエンジニアになりたいと考えています。継続して投稿していく中で、その為のインプットも必然的に増え、成長に繋がるかと考えています。
今現在、初心者だからといって言い訳はできないですが、投稿の内容に間違っているところや、付け加えるべきところが多々あるかと思いますので、ご指摘頂けると幸いです。この記事を読んで下さりありがとうございました。