TeamCity を使用した継続的インテグレーション
TeamCity は、変更を行うたびにプロジェクトに対して自動的にテストを実行するように設計された継続的インテグレーションサーバーです。TeamCity を設定して、テストに合格した場合にバージョン管理への変更を自動的にコミットしたり、変更をリモート環境にデプロイしたりできます。rvm を TeamCity と統合することで、複数の Ruby バージョンに対してテストを実行し、各プロジェクトが独立した gem セットを使用するように、複数のプロジェクトをテストできます。
概要
TeamCity を RVM と共に実行するには、以下が必要です。
- ビルドを管理し、Web インターフェースを提供して、ビルドプロセスを監視および制御できるようにする TeamCity サーバーをセットアップします。
- 実際にビルドを実行し、テストを実行する 1 つ以上の個別のビルドエージェントプロセスを実行します。これらのビルドエージェントは、 TeamCity サーバーと同じマシン上にあるか、リモートマシンから接続できます。
- TeamCity サーバー上のプロジェクトの構成の一部として、ビルドエージェントで使用する Ruby と Gemset を指定します。
TeamCity のインストール
ビルドエージェントのインストール
TeamCity プロジェクトの構成
ビルドエージェントの設定
ビルドエージェントのマシンにプロジェクトの Ruby と Gemset をインストールします。これは、各ビルドエージェントマシンで手動で実行するか、RVM を使用してプロジェクトをビルドしようとする前に、各ビルドエージェントの環境で完了していれば、コマンドラインビルドランナーとして実行できます。
RVM を使用するようにビルドエージェントを設定する
Rake ビルドランナーを使用する
TeamCity 5.1.3 には、Rake ビルドランナーでの RVM 設定のサポートが含まれています。ビルドランナーの「起動パラメーター」で、以下のオプションを設定します。
- 「Ruby インタープリターパス」は、ビルドランナーにインストールされている任意の RVM Ruby にできます。(例:'1.9.2')
- 「RVM gemset 名」は、指定された Ruby の任意の RVM Gemset にできます。
コマンドラインビルドランナーを使用する
TeamCity 5.1.3 現在、コマンドラインビルドランナーには RVM の組み込みサポートはありませんが、適切な環境変数を指定すれば RVM を使用できます。以下の例は、コマンドラインビルドランナーを使用して "bundle install" を実行する方法を示しています。
ビルドランナーの構成ステップで
- 「ビルドランナー」を「コマンドライン」に設定します。
- 「コマンド実行可能ファイル」を「~/.rvm/gems/%rvm.ruby%@%rvm.gemset%/bin/bundle」に設定します。
- 「コマンドパラメーター」を「install」に設定します。
プロパティと環境変数の構成ステップで
次の 2 つの「構成パラメーター」を追加します。これらの値を構成パラメーターとして設定すると、ビルドランナーの構成と以下の環境変数で再利用できます。
名前 | 値 |
---|---|
rvm.ruby | プロジェクトの Ruby |
rvm.gemset | プロジェクトの Gemset |
次の環境変数を「ビルドパラメーター」に追加します。
名前 | 値 |
---|---|
BUNDLE_PATH | ~/.rvm/gems/%rvm.ruby%@%rvm.gemset% |
GEM_HOME | ~/.rvm/gems/%rvm.ruby%@%rvm.gemset% |
GEM_PATH | ~/.rvm/gems/%rvm.ruby%@%rvm.gemset%:/home/teamcity/.rvm/gems/%rvm.ruby%@global |
PATH | ~/.rvm/bin:~/.rvm/rubies/%rvm.ruby%/bin:~/.rvm/gems/%rvm.ruby%@%rvm.gemset%/bin:~/.rvm/gems/%rvm.ruby%@global/bin:%env.PATH% |
上記のいずれかの構成を使用すると、ビルドエージェントはビルドを実行するときに RVM Ruby と Gemset を参照できるようになります。