travis CI:非node项目下指定node版本

在travis CI中配置指定版本的node,分两种情况:

纯 node.js 项目

node是唯一的依赖,查看官网building a javascript and Node.js project,在.travis.yml中添加:

1
2
3
4
language: node_js
node_js:
- "8"
- "6"

如果需要安装指定版本的nodejs,需要借助于.nvmrc,具体操作见官网,这里主要看非node项目下,如何配置指定版本的node。

非node项目,项目中依赖node

比如Rails项目,language为ruby,这时就不能使用上面的方式来设置。

那么如何设置?

在docs里面没有搜到,参考了这篇文章Travis CI: Node Version Management on Non-Node Projects,搞定。

具体如下:

.travis.yml中添加:

1
2
3
4
5
6
env:
- TRAVIS_NODE_VERSION="8.12.0"

install:
- 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

这里做了这么几件事:

  • 设置了环境变量TRAVIS_NODE_VERSION, 指定版本号,这里指定的是8.12.0。
  • rm -rf ~/.nvm 删除服务器上原来的nvm
  • git clone https://github.com/creationix/nvm.git ~/.nvm, 从GitHub上拉取nvm
  • cd ~/.nvm && git checkout git describe --abbrev=0 --tags 切换到最新版的nvm
  • source ~/.nvm/nvm.sh 执行nvm.sh文件
  • nvm install $TRAVIS_NODE_VERSION 安装指定版本node

OK。

后面老大给了更好的解决方法,附上:
.travis.yml中添加:

1
2
3
4
5
6
7
env:
- TRAVIS_NODE_VERSION="8.12.0"

install:
- nvm install TRAVIS_NODE_VERSION
- nvm alias default TRAVIS_NODE_VERSION
- npm install

果然,简单多了。不得不说,小白还有很长的路要走。

参考:

Travis CI: Node Version Management on Non-Node Projects

building a javascript and Node.js project