travis-ci ruby​​使用节点5构建

时间:2016-03-25 16:44:01

标签: ruby node.js travis-ci

我尝试了很多东西,但最终未能获得gulp-pipeline-rails运行的构建。 script在本地运行,没问题。

我缩小的最后一个问题是我有一个ruby语言项目,它使用节点,但是I need node 5。我找到了one snippet

#------------------------------
# Update the node version
env:
  - TRAVIS_NODE_VERSION="5"

install:
  - pwd
  - rm -rf ~/.nvm && git clone https://github.com/creationix/nvm.git ~/.nvm && (cd ~/.nvm && git checkout `git describe --abbrev=0 --tags`) && source ~/.nvm/nvm.sh && nvm install $TRAVIS_NODE_VERSION
  - npm install

虽然这似乎让节点更新了,但它对我的ruby env做了些什么fails to execute rspec

$ pwd && bundle exec rake
/home/travis/build/alienfast/gulp-pipeline-rails
Could not find gem 'rspec' in any of the gem sources listed in your Gemfile or available on this machine.
Run `bundle install` to install missing gems.

问题 尽管如此,我如何简单地将节点5用于此.travis.yml

language: ruby
rvm:
  - 2.2.2
  - ruby-head

matrix:
  allow_failures:
    - rvm: ruby-head

cache: bundler

#------------------------------
# Setup
before_script:
  - node -v
  # update npm
  - npm install npm -g

  # install Gulp 4 CLI tools globally from 4.0 GitHub branch
  - npm install https://github.com/gulpjs/gulp-cli/tarball/4.0 -g

#------------------------------
# Build
script: bundle exec rake

3 个答案:

答案 0 :(得分:8)

尝试在Travis上使用before_install adding a second language阶段,可能是这样的:

before_install:
  - nvm install node
默认情况下,应在Travis构建映像上安装

nvm(取决于您正在使用的映像),此命令将安装最新版本的Node。

之后,也许只有npm install -g gulp-cli@4.0作为before_script阶段的第一步(即不要担心更新npm),希望这应该意味着捆绑包仍然可以正常运行并安装所有宝石。

答案 1 :(得分:2)

我发现this article帮助了我很多。

文章中的相关信息:

您可以使用nvm管理travis中的节点版本,但必须先启用它:

 install:
  - . $HOME/.nvm/nvm.sh
  - nvm install stable
  - nvm use stable

答案 2 :(得分:0)

如果项目的语言是ruby,Travis CI默认会运行bundle install --jobs=3 --retry=3

如果你自己在install中定义.travis.yml阶段,the default will not execute in favor of the newly specified commands.这里的想法是默认使用神奇的魔法,应该很容易被覆盖。

此问题有两种解决方案:

  1. bundle install --jobs=3 --retry=3添加到install阶段
  2. 按照@ocean的建议,将节点替换片段的标题重命名为before_install