我有一个像这样的构建,它在一年前工作:
language: java
cache:
directories:
- $HOME/.m2
jdk:
- oraclejdk8
install:
- gem install buildr
script: buildr clean upload
但不幸的是,其中一个库buildr现在需要Ruby 2.0:
ERROR: Error installing buildr:
net-ssh requires Ruby version >= 2.0.
(资料来源:https://travis-ci.org/trejkaz/hex-components/builds/224629263)
所以我尝试按如下方式更新构建:
language: java
cache:
directories:
- $HOME/.m2
jdk:
- oraclejdk8
rvm:
- 2.0
install:
- gem install buildr
script: buildr clean upload
错误是一样的:
ERROR: Error installing buildr:
net-ssh requires Ruby version >= 2.0.
我尽可能地遵循文档,似乎它并没有使用我特别要求的Ruby版本。
我做错了什么?
答案 0 :(得分:1)
无法安装buildr
的最初原因是因为Travis CI的当前映像是Ubuntu 12.04,它为系统Ruby提供了Ruby 1.8。很快,这将更新到Ubuntu 14.04,它有Ruby 1.9用于系统的Ruby安装。不幸的是,这两个都低于您需要为项目安装gem所需的2.0。
您尝试使用rvm
的方法是正确的想法,但不适用于language: java
。但是,它适用于language: ruby
。由于支持jdk
,language: ruby
密钥可以方便地与JRuby
一起使用。请注意以下文档:
https://docs.travis-ci.com/user/languages/ruby/
对.travis.yml
进行略微修改会让您前进:
language: ruby
cache:
directories:
- $HOME/.m2
jdk:
- oraclejdk8
rvm:
- 2.0
install:
- gem install buildr
script: buildr clean upload
正如您在评论中所指出的那样,Travis CI在使用language
定义基础环境时会对一个不是多语言的项目做出大胆而危险的假设,这可能导致您在你的问题。