如何更新node.js并在Travis CI的python项目中安装grunt / bower?

时间:2013-11-21 16:55:45

标签: node.js npm gruntjs bower travis-ci

我需要在安装项目时使用grunt。我需要node.js> = 0.8。但Travis CI中的python VM中包含的版本是0.6。

我尝试下载最后一个二进制文件并将其插入到PATH中,但我无法正确导出变量,如果我使用travis的env:参数更改它,则不会有其余的PATH。

如果我直接使用二进制文件(./node-v0.10.22-linux-x64/bin/npm install ...),它会将它们安装在./node-v0.10.22-linux-x64/bin/中,当我想使用grunt时,它会调用bower(任务之一),但它会失败。 (致命错误:无法执行git checkout e6f8a58dbce5858586564a1ba4543f122ef63225,退出代码为#128)。

那么,更新node.js和安装二进制文件的最佳解决方案是什么?我需要在Travis CI中使用它们?

3 个答案:

答案 0 :(得分:4)

以下是我一直使用的Travis配置的修改版本。安装节点的步骤是从node's install docs改编的。此方法将安装最新的稳定版本的节点。

language: python
python:
  - "2.7"
  - "3.3"

install:
  # Python test requirements
  - pip install -r requirements.txt
  - pip install nose coverage selenium

  # JavaScript test requirements
  - sudo add-apt-repository -y ppa:chris-lea/node.js
  - sudo apt-get -y update
  - sudo apt-get -y install nodejs
  - sudo npm install -g grunt-cli
  - sudo npm install -g bower
  - sudo npm install

before_script:
  - bower install

script:
  # Run Python tests and generate coverage statistics
  - nosetests --with-coverage

  # Run tests for JavaScript
  - grunt test

# etc., etc.

答案 1 :(得分:0)

我现在有一个工作的travis文件,但我对这个解决方案并不满意:

language: python
python: 2.7
install:
  - sudo apt-get -qq install libfreetype6-dev liblcms1-dev libwebp-dev memcached
  - wget http://nodejs.org/dist/v0.10.22/node-v0.10.22-linux-x64.tar.gz
  - tar xzvf node-v0.10.22-linux-x64.tar.gz
  - sudo ./node-v0.10.22-linux-x64/bin/npm install -g bower grunt-cli
  - mkdir -p buildout-cache/eggs
  - mkdir -p buildout-cache/downloads
  - python bootstrap.py -c travis.cfg
  - bin/buildout -N -c travis.cfg install download install
  - bin/buildout -N -c travis.cfg
  - cd path/to/resources/folder
  - sudo ../../../../node-v0.10.22-linux-x64/bin/npm install
  - ../../../../node-v0.10.22-linux-x64/bin/bower install
  - ../../../../node-v0.10.22-linux-x64/bin/grunt
  - cd -

我通过将目标更改为master(来自特定的提交ID)来更正了bower中的错误。我不知道它为什么不在travis上工作但在本地工作。

答案 2 :(得分:0)

Travis CI的Trusty beta附带“一个巨大的图像,它将包含几乎所有(很快就会全部)我们普遍支持的运行时和服务。”

要使用它,请将其添加到.travis.yml:

sudo: required
dist: trusty

例如:

sudo: required
dist: trusty

language: python

python:
- 'pypy'
- 'pypy3'
- '2.6'
- '2.7'
- '3.2'
- '3.3'
- '3.4'
- '3.5'

script:
  - python --version
  - node --version

在撰写本文时,它包含Node v4.1.2而不是v0.10.36。