与 TeamCity 的持续集成
TeamCity 是一款持续集成服务器,旨在每次您进行更改时自动对项目运行测试。您可以配置 TeamCity 在测试通过时自动将更改提交到版本控制,或将更改部署到远程环境。通过将 rvm 与 TeamCity 集成,您可以针对多个 Ruby 版本运行测试,并测试多个项目,每个项目使用独立的 gem 集。
总体概述
为了使用 RVM 运行 TeamCity,您需要
- 设置一个 TeamCity 服务器,它管理您的构建并提供 Web 界面,以便您可以监控和控制构建过程。
- 运行一个或多个独立的构建代理进程,这些进程实际上执行构建并运行您的测试。这些构建代理可以 位于与 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"
在属性和环境变量配置步骤中
添加以下两个 "配置参数"。将这些值设置为配置参数允许它们在构建运行器配置和下面的环境变量中重复使用。
名称 | 值 |
---|---|
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。