CircleCI2.0の公式サイトを見ると、PostgreSQLについての設定例はあるのだが
一番知りたいMySQLの設定例が無い。
そして、自分は今回初めてCircleCIを利用する初心者。
そして色んなサイトを参考にしようと、調べては見るものの
自分がよくわかっていないからか、設定ができるまでに
凄い時間がかかった。
最終的に設定したものがこれ。
config.yml
... docker: - image: circleci/ruby:2.4.1-node-browsers environment: RAILS_ENV: test DB_HOST: 127.0.0.1 DB_USERNAME: 'root' DB_PASSWORD: '' - image: circleci/mysql:5.7 ...
database.yml
default: &default adapter: mysql2 encoding: utf8 pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %> username: root password: socket: /tmp/mysql.sock test: <<: *default username: <%= ENV['DB_USERNAME'] || 'xxxxxxxxxx' %> password: <%= ENV['DB_PASSWORD'] || 'ppppppppp' %> host: <%= ENV['DB_HOST'] || 'localhost' %> database: dummy_test
ポイントは以下の2点
- rubyのimageに設定するenvironment(環境変数)は、railsのdatabase.yml内で使用できるという点
- database.ymlのhostには「127.0.0.1」が設定されるようにする。localhostだとエラーになる。
またdatabase.yml内の'xxxxxxxxxx'と、'ppppppppp'の箇所には、
それぞれローカル環境で使用する「ユーザ名」と「パスワード」を設定する。
そうすれば、この設定だけでローカルでもCircleCIでもテストができる。
[参考リンク]