Jenkins集成Rails单元测试关键是安装ruby环境,jenkins可以通过插件安装ruby运行环境,但是安装的ruby版本是j-ruby,和我们使用的标准ruby有一定区别不推荐安装。
我们需要通过ruby版本控制工具安装rvm或者rbenv安装需要的ruby版本。这里选择rvm来安装。
我们只需要为jekins用户安装rvm, 不推荐安装全局的, 运行下面的命令安装:
sudo su -lp jenkins
gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3
curl -sSL https://get.rvm.io | bash -s stable
echo '[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"' >> ~/.bash_profile
测试rvm是否安装成功
type rvm | head -1 # 返回 'rvm is a function' 表示安装成功
最后,配置一些必要的参数
rvm_install_on_use_flag=1
rvm_project_rvmrc=1
rvm_gemset_create_on_use_flag=1
添加一个普通的jenkins任务,在'Execute Shell Script'部分做如下设置:
#!/bin/bash
source "$HOME/.rvm/scripts/rvm"
# Use the correct ruby
[[ -s ".rvmrc" ]] && source .rvmrc
# Set "fail on error" in bash
set -e
# Do any setup
# e.g. possibly do 'rake db:migrate db:test:prepare' here
bundle install
rake db:test:prepare
# Finally, run your tests
rake
如果之前没有为rails项目配置数据库,上面的脚本执行build会出错,我们可以在workspace下面设置数据库。
sudo su -lp jenkins
cd /var/lib/jenkins/workspace/Project_name
vi config/database.yml #设置你的development和test数据库
上面步骤完成之后,就可以成功build一个ROR项目,执行包括单元测试和其他的各种rake任务了。