@@ -18,23 +18,59 @@ cache:
1818 directories :
1919 - node_modules
2020before_install :
21- # Skip updating shrinkwrap / lock
22- - " npm config set shrinkwrap false"
23-
21+ # Configure npm
22+ - |
23+ # Skip updating shrinkwrap / lock
24+ npm config set shrinkwrap false
2425 # Remove all non-test dependencies
25- - " npm rm --save-dev benchmark beautify-benchmark || true"
26-
26+ - |
27+ # Remove benchmark dependencies
28+ npm rm --silent --save-dev benchmark beautify-benchmark
2729 # Setup Node.js version-specific dependencies
28- - " test $TRAVIS_NODE_VERSION != '0.8' || npm rm --save-dev istanbul"
29- - " test $TRAVIS_NODE_VERSION = '0.8' || npm install browserify"
30- - " test $(echo $TRAVIS_NODE_VERSION | cut -d. -f1) -ge 6 || npm rm --save-dev $(grep -E '\" eslint\\ S*\" ' package.json | cut -d'\" ' -f2)"
31-
30+ - |
31+ # istanbul for coverage
32+ # - remove for Node.js < 0.10
33+ if [[ "$(cut -d. -f1 <<< "$TRAVIS_NODE_VERSION")" -eq 0 && "$(cut -d. -f2 <<< "$TRAVIS_NODE_VERSION")" -lt 10 ]]; then
34+ npm rm --silent --save-dev istanbul
35+ fi
36+ - |
37+ # browserify for browser testing
38+ # - install for Node.js > 0.8
39+ if [[ "$(cut -d. -f1 <<< "$TRAVIS_NODE_VERSION")" -gt 0 || "$(cut -d. -f2 <<< "$TRAVIS_NODE_VERSION")" -gt 8 ]]; then
40+ npm install --silent --save-dev browserify
41+ fi
42+ - |
43+ # eslint for linting
44+ # - remove on Node.js < 6
45+ if [[ "$(cut -d. -f1 <<< "$TRAVIS_NODE_VERSION")" -lt 6 ]]; then
46+ node -pe 'Object.keys(require("./package").devDependencies).join("\n")' | \
47+ grep -E '^eslint(-|$)' | \
48+ xargs npm rm --save-dev
49+ fi
3250 # Update Node.js modules
33- - " test ! -d node_modules || npm prune"
34- - " test ! -d node_modules || npm rebuild"
51+ - |
52+ # Prune and rebuild node_modules
53+ if [[ -d node_modules ]]; then
54+ npm prune
55+ npm rebuild
56+ fi
3557script :
36- # Run test script, depending on istanbul install
37- - " test ! -z $(npm -ps ls istanbul) || npm test"
38- - " test -z $(npm -ps ls istanbul) || npm run-script test-ci"
39- - " test -z $(npm -ps ls eslint ) || npm run-script lint"
40- after_script :
" npm install [email protected] && cat ./coverage/lcov.info | coveralls" 58+ # Run test script
59+ - |
60+ if npm -ps ls istanbul | grep -q istanbul; then
61+ npm run test-ci
62+ else
63+ npm test
64+ fi
65+ # Run linting
66+ - |
67+ if npm -ps ls eslint | grep -q eslint; then
68+ npm run lint
69+ fi
70+ after_script :
71+ - |
72+ # Upload coverage to coveralls
73+ if [[ -f ./coverage/lcov.info ]]; then
74+ npm install --save-dev [email protected] 75+ coveralls < ./coverage/lcov.info
76+ fi
0 commit comments