Magnum CI は 無料で使える CI 環境で、 きっと愛用している人も多いと思います。 本記事では、 Bitbucket で管理している Rails のコードを、 Magnum CI でテストした時のメモを書いておきます。
Bitbucket のコードを Magnum CI と連携させるのは、 Magnum CI が用意している説明を見ればできます。
Magnum 環境の追加
Magnum CI を使うために、 Magnum 環境 を作ります。 test 環境 で実行する場合は特に必要ありません。
config/environments
の中にmagnum.rb
を作ります。 ラベルはmagnum
とします。config/secrets.yml
にmagnum
環境でのシークレットキーを追加します。config/database.yml
にmagnum
環境でのデータベース設定を追加します。 私は次のように設定しました。 Magnum CI のドキュメントを参考にしてください。12345678910magnum:<<: *defaultadapter: mysql2database: somedbcharset: utf8mb4encoding: utf8mb4collation: utf8mb4_general_cihost: localhostusername: rootport: 3306- その他環境に応じて変えるべきものがあれば
magnum
環境用の設定を追加します。
これでRails側の変更は完了です。 スクリプトを書いて Railsコード内でビルドの実行を制御することもできますが、 そういった設定は Magnum CI の設定画面で行いました。
Build Configuration
Magnum CI への登録はできるとして、 追加したプロジェクトの Build Configuration
の設定を説明します。 私が参加していたプロジェクトでの設定例を書いておきます。
- Runtime Version
Ruby のバージョンを設定します。 私がやったときは Magnum CI がサポートしているバージョンで最新のものは Ruby 2.0.0 でした。 開発中の Rails プロジェクトは Ruby 2.2.2 だったので、 Runtime Version で設定することはできませんが、 別の方法で対応可能です。 Build Steps のところで説明します。
- Resources
必要なデータベースやキャッシュを追加します。
- Environment Variables
RAILS_ENV
を設定します。1RAILS_ENV=magnum- Build Step
-
- Before installation
ここで Ruby, Rails のバージョンを変更します。
12rvm install 2.2.2rvm use ruby-2.2.2- Before test execution
DB を作っておきます。
123mysql -u root -e 'create database somedb CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;'bundle exec rake db:migratebundle exec rake db:seed- Test suit commands
テストを実行します。
1bundle exec rspec