我需要在安装项目时使用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中使用它们?
答案 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。