2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

CircleCIに環境変数を追加する方法

Posted at

はじめに

ポートフォリオにCircleCIを組み込みたいと思い、何とか自動テストを通すことができるようになりました。

しかしTwitter apiを使用するために作成したapi key等を、環境変数として.envで追加したところ自動テストが通らなくなりました。
今後も同じようなエラーが起きた時に確認できるよう備忘録として残そうと思います。

api keyを追加したらdb:createでエラーが発生

今までは通っていた"rails db:create"がapi key(.envファイルにはTWITTER_KEYの名前で格納しています)を追加したところ下記のエラー文が表示されました。

key not found: "TWITTER_KEY" (KeyError)

.envに記述されている内容はgithubにpushしてはいけないので、当然githubのファイルを使って動くCircleCI上では、TWITTER_KEYの中身を見つけられません。

CircleCIに環境変数を追加する

このエラーを解決させるためには、CircleCIのサイトに直接、環境変数を追加する必要があります。

まず、CircleCIのProjectsのページから"project setting"を選択し、"Environment Variables"に移動したら"Add Environment Variable"をクリックします。

スクリーンショット 2022-08-10 12.21.36.png

そこで、nameにはkeyを格納している名前,valueにkeyを入れて"Add Environment Variable"を押します。

スクリーンショット 2022-08-10 12.23.08.png

これでCircleCIへ環境変数を追加する作業が完了しました。

.circleci/config.ymlに記述を追加する

CircleCIに環境変数を追加したら、今度はCircleCIの設定を記述しているconfig.ymlに環境変数を追加する必要があります。

environmentの箇所に下記のように追加すればOKです。

    environment:
      BUNDLE_JOBS: "3"
      BUNDLE_RETRY: "3"
      APP_DATABASE_HOST: "127.0.0.1"
      RAILS_ENV: test
      TWITTER_KEY: $TWITTER_KEY
      TWITTER_SECRET: $TWITTER_SECRET
      => CircleCIで登録したnameに$を追加する形("$name")で記載すれば、環境変数を使用できるようです。

これでエラーはなくなり、自動テストが通るようになりました!

※余談ですが、自分が実装したい機能にTwitter apiは必要なかったことを先ほど知りました。。
認証まわりで苦戦して1日半くらい無駄にした。。
決めつけで動くのは本当に良くないことを見にしみて感じました。。。。

2
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
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?