如何在Travis CI上的一个项目中运行Node.js和Ruby测试
我有一个包含多个组件的repo,其中大部分是JavaScript(Node.js)和Ruby(RubyonRails)编写的。我想要一个.travis.yml文件,它触发一个构建,运行每个组件的所有测试。据报道,目前还没有官方的支持 我的目录结构如下所示:如何在Travis CI上的一个项目中运行Node.js和Ruby测试,node.js,ruby,rspec,travis-ci,ruby-mocha,Node.js,Ruby,Rspec,Travis Ci,Ruby Mocha,我有一个包含多个组件的repo,其中大部分是JavaScript(Node.js)和Ruby(RubyonRails)编写的。我想要一个.travis.yml文件,它触发一个构建,运行每个组件的所有测试。据报道,目前还没有官方的支持 我的目录结构如下所示: . ├── 构建服务器 ├── 核心 ├── 扩展 ├── 网络应用 ├── 流浪汉档案 ├── package.json ├── .特拉维斯 └── 生成文件 我希望能够运行特定版本的Ruby(2.2.2)和Node.js(0.12.2
.
├── 构建服务器
├── 核心
├── 扩展
├── 网络应用
├── 流浪汉档案
├── package.json
├── .特拉维斯
└── 生成文件
我希望能够运行特定版本的Ruby(2.2.2)和Node.js(0.12.2)。我已经有了一个
make
目标,所以make test
在每个子目录中运行适当的测试套件。结果是,在Travis CI上运行独立测试套件的每个VM都附带了。默认情况下,您将获得Ruby 1.9.3和Node.js 0.12.2(但随着Travis团队更新其环境,这可能会发生变化),因此即使您只能在.Travis.yml
文件中指定一种语言(例如语言:Ruby
),您仍然可以在Travis CI VM上运行Ruby和Node.js程序
我决定使用Node.js语言设置并安装适当的Ruby版本(但我可以用同样的效果做相反的事情)
这是我的.travis.yml
配置文件:
language: node_js
node_js:
- 0.12.2
addons:
postgresql: "9.4"
before_install:
- rvm install 2.2.2
install:
# run whatever you have to do here. I have a Makefile that lets you install
# all Node.js-related or Ruby-related dependencies as one step.
- make npm
- make bundler
before_script:
# My Rails app lives in a subdirectory. I want to make sure that
# my database is ready before I start running RSpec tests
- psql -c 'create database test_db;' -U postgres
# I use separate database.yml config for Travis CI
- cp webapp/config/database.travis.yml webapp/config/database.yml
script:
# `test` target executes `bundle exec rspec spec` and `npm run test`
# in all appropriate subdirectories
- make test