如何配置Travis CI跳过特定Node.js版本的指定脚本
在Travis CI中仅指定Node.js版本执行特定脚本
当然可以实现!Travis CI内置了环境变量来帮我们判断当前运行的Node.js版本,咱们可以用$TRAVIS_NODE_VERSION这个变量做条件判断,只在目标版本(比如你说的Node 9)上运行那些代码覆盖率、Greenkeeper相关的脚本,其他版本直接跳过,这样就能节省不少构建时间和资源啦。
下面是修改后的.travis.yml配置,我已经给需要控制的阶段加上了条件判断:
node_js: - '9' - '8' - '6' branches: only: - master - /^greenkeeper.*$/ before_install: - if [ "$TRAVIS_NODE_VERSION" = "9" ]; then npm install -g greenkeeper-lockfile@1; fi before_script: - if [ "$TRAVIS_NODE_VERSION" = "9" ]; then greenkeeper-lockfile-update; fi script: - npm run verify after_script: - if [ "$TRAVIS_NODE_VERSION" = "9" ]; then greenkeeper-lockfile-upload; fi after_success: - if [ "$TRAVIS_NODE_VERSION" = "9" ]; then npm install -g travis-deploy-once@4; fi - if [ "$TRAVIS_NODE_VERSION" = "9" ]; then travis-deploy-once "npm run semantic-release"; fi - if [ "$TRAVIS_NODE_VERSION" = "9" ]; then npm install --no-save coveralls && npm run coveralls; fi - if [ "$TRAVIS_NODE_VERSION" = "9" ]; then npm install --no-save codecov && npm run codecov; fi
配置说明:
- 对于
before_install、before_script、after_script和after_success里的每一条命令,我们都用Shell的if条件包裹起来,只有当当前Node版本等于9时才执行对应的命令。 script阶段的npm run verify保持不变,因为所有版本的Node都需要运行这个验证任务。- 如果你以后要切换最高版本(比如升级到Node 10),只需要把条件里的
"9"改成对应的版本号就行,非常灵活。
这样配置后,Node 6和8的构建会直接跳过那些不需要的脚本,只有Node 9的构建会完整执行所有流程,完全符合你的需求~
内容的提问来源于stack exchange,提问作者unional
相关产品推荐
相关产品推荐

