CircleCIでMySQLを使う(Padrino)
PadrinoアプリでActiveRecordを介してMySQLに接続しているのですが
これをCircleCIで用意しているMySQLにつなげる方法のメモ。
基本設定となるcircle.yml
は以下の様になっています。
1 | machine: timezone: Asia/Tokyo ruby: version: 2.2.0 environment: RACK_ENV: test services: - mysql dependencies: override: - bundle install database: override: - mv config/database.yml.ci config/database.yml - bundle exec rake ar:create ar:schema:load test: post: - bundle exec rake test |
- mysqlを利用させてもらう
- 各種bundle系コマンドを指定
といった部分は特に説明がいらなそうですが
データベース用ymlファイル(後述)をCircleCI用に用意しておいて、CIを回す際に置き換えるのがポイントです。
続いて、config/database.rb
の設定。
必要な設定ではありませんが、Railsなどと融通しやすくするためにconfig/database.yml
を読む設定にしています。
1 | ActiveRecord::Base.configurations = YAML.load(ERB.new(File.read(Padrino.root('config', 'database.yml'))).result).with_indifferent_access |
cf. Padrinoでアプリ作る時もdatabase.ymlを作った方がよかった - くりにっき
最後に、config/database.yml.ci
。CircleCIが用意してくれるMySQL環境への接続は以下の設定でOKです。
1 | test: adapter: mysql2 encoding: utf8 database: app_test pool: 5 username: password: |
ここまでの設定で、無事にCircleCIでテストコードが実行されるようになりました。