LoginSignup
12
9

More than 3 years have passed since last update.

CircleCIでLaravelの.envファイルを環境変数を使って参照する

Last updated at Posted at 2019-06-06

CircleCIに入門したときに、ちょっと思いついたので備忘録です。

CircleCI2.0でMySQLを使ったLaravelのテストを実行する
こちらの記事を参考に、 config.yml を設定していたのですが、ふと疑問に思いました。

これって他のAPIキーとか設定する場合、べた書きだとまずいよな......

単純にCircleCIの環境変数を使えばいいのでは?と思ったのですが、せっかくなので.env.testingをそのまま使いたいところです。
ですが、APIキーが書かれた.env.testingGitで管理はしたくないです。(するべきではないです)
そこで、.env.testingの中身をすべて環境変数につっこんでしまおう、と考えました。

.envの中身を出力する

例えばこんな.envファイルがあったとします。

.env.testing
APP_ENV=testing
APP_KEY=base64:tekitounamojiretsu
APP_DEBUG=true

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=circle_test
DB_USERNAME=root

EXAMPLE_API_KEY=qwerty
EXAMPLE_API_SECRET=ytrewq

それをbase64にエンコードして出力します。

$ cat .env.testing | base64
QVBQX0VOVj10ZXN0aW5nCkFQUF9LRVk9YmFzZTY0OnRla2l0b3VuYW1vamlyZXRzdQpBUFBfREVC
VUc9dHJ1ZQoKREJfQ09OTkVDVElPTj1teXNxbApEQl9IT1NUPTEyNy4wLjAuMQpEQl9QT1JUPTMz
MDYKREJfREFUQUJBU0U9Y2lyY2xlX3Rlc3QKREJfVVNFUk5BTUU9cm9vdAoKRVhBTVBMRV9BUElf
S0VZPXF3ZXJ0eQpFWEFNUExFX0FQSV9TRUNSRVQ9eXRyZXdxCg==

出力された文字列をコピーします。

CircleCIの環境変数に設定する

CircleCIにログインし、対象のリポジトリのSettings > BUILD SETTINGS > Environment Variablesを開き、Add Variableから環境変数を設定します。
NameENV_FILEとします。

2019-06-06_17h59_42.png

config.ymlを設定する

.circleci/config.yml.env.testingファイル作成コマンドを記述します。
※詳細は、CircleCI2.0でMySQLを使ったLaravelのテストを実行するのものを参考にしてください。

circleci/config.yml
# steps 配下
- run:
    name: base64 decode env file
    # ファイルに改行が含まれているので`-i`オプションを付ける
    command: echo $ENV_FILE | base64 -di > .env.testing

これでローカルなどと同じように.env.testingファイルが利用できます。
とはいえ、あまり使いどころはないかもしれませんが......

12
9
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
12
9