Vagrant 使用Travis CI针对多个流浪版本进行测试

Vagrant 使用Travis CI针对多个流浪版本进行测试,vagrant,travis-ci,Vagrant,Travis Ci,我想针对多个版本测试我的Vagrant插件,每个版本都使用与Vagrant包嵌入的相同ruby版本。我为Travis CI创建了以下配置文件: language: ruby matrix: include: - rvm: 1.8.7-p357 gemfile: gemfiles/vagrant1_1.gemfile - rvm: 1.9.3-p448 gemfile: gemfiles/vagrant1_2.gemfile gemfile:

我想针对多个版本测试我的Vagrant插件,每个版本都使用与Vagrant包嵌入的相同ruby版本。我为Travis CI创建了以下配置文件:

language: ruby
matrix:
  include:
    - rvm: 1.8.7-p357
      gemfile: gemfiles/vagrant1_1.gemfile
    - rvm: 1.9.3-p448
      gemfile: gemfiles/vagrant1_2.gemfile
      gemfile: gemfiles/vagrant1_3.gemfile
    - rvm: 2.0.0-p353
      gemfile: Gemfile
但是,当我尝试针对Travis Lint web服务验证此配置时,我收到以下错误:

发现rvm密钥有问题:

使用“rvm”键指定要测试的Ruby版本/实现


第一次使用Travis CI时,我无法理解我做错了什么。

Travis似乎要求您至少指定一个默认值
rvm
。比如:

language: ruby
rvm: 2.0.0
matrix:
  # ...
另一个问题是,我很确定'1.9.3-p448'中的第二个
gemfile
将覆盖第一个

第三,Vagrant官方只支持一个Ruby版本。在1.4版本之前,Vagrant只适用于Ruby 1.9.3,而从1.4版本开始,Vagrant只适用于Ruby 2.0.0。您可能不会在插件的单元测试中遇到问题,但无需消耗Travis资源。=)

有关基于env-var的方法(而不是基于Gemfile),请参阅vagrant proxyconf和



非常喜欢您的环境变量方法。谢谢。Env-var很好,因为您还可以在开发时将其设置为想要的版本。因此,无需将gemfile传递给所有bundler命令。