【问题标题】:travis-ci ruby build with node 5使用节点 5 构建 travis-ci ruby
【发布时间】:2016-06-11 04:23:44
【问题描述】:

我尝试了很多方法,但最终未能让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​​ 环境有一些作用,它在 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

【问题讨论】:

    标签: ruby node.js travis-ci


    【解决方案1】:

    尝试在 Travis 上为adding a second language 使用before_install 舞台,可能类似于:

    before_install:
      - nvm install node
    

    nvm 应该默认安装在 Travis 构建镜像上(取决于您使用的是哪一个),此命令将安装最新版本的 Node。

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

    【讨论】:

      【解决方案2】:

      我发现this article 帮了我不少忙。

      文章相关信息:

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

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

      【讨论】:

        【解决方案3】:

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

        如果您自己在.travis.yml 中定义install 阶段,the default will not execute in favor of the newly specified commands. 此处的想法是默认情况下具有正常的魔法,应该很容易被覆盖。

        这个问题有两种解决方案:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2016-06-15
          • 1970-01-01
          • 2021-07-15
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多