Skip to content

Commit d6c7959

Browse files
committed
build: restructure Travis CI build steps
1 parent 4e3c0ed commit d6c7959

File tree

2 files changed

+85
-28
lines changed

2 files changed

+85
-28
lines changed

.travis.yml

Lines changed: 52 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -18,23 +18,59 @@ cache:
1818
directories:
1919
- node_modules
2020
before_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
3557
script:
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

appveyor.yml

Lines changed: 33 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -16,22 +16,43 @@ environment:
1616
cache:
1717
- node_modules
1818
install:
19+
# Install Node.js
1920
- ps: >-
2021
try { Install-Product node $env:nodejs_version -ErrorAction Stop }
2122
catch { Update-NodeJsInstallation (Get-NodeJsLatestBuild $env:nodejs_version) }
22-
- npm config set shrinkwrap false
23-
- npm rm --save-dev benchmark beautify-benchmark & ver > nul
24-
- if "%nodejs_version%" equ "0.8" npm config set strict-ssl false
25-
- if "%nodejs_version%" equ "0.8" npm rm --save-dev istanbul
26-
- for /f tokens^=2^ delims^=^" %%m in ('findstr /r /c:"eslint[^ ]" package.json') do call npm rm --save-dev %%m
27-
- if exist node_modules npm prune
28-
- if exist node_modules npm rebuild
23+
# Configure npm
24+
- ps: |
25+
# Skip updating shrinkwrap / lock
26+
npm config set shrinkwrap false
27+
# Skip SSL validation on Node.js < 0.10
28+
if ([int]$env:nodejs_version.split(".")[0] -eq 0 -and [int]$env:nodejs_version.split(".")[1] -lt 10) {
29+
npm config set strict-ssl false
30+
}
31+
# Remove all non-test dependencies
32+
- ps: |
33+
# Remove benchmark dependencies
34+
npm rm --silent --save-dev benchmark beautify-benchmark
35+
# Remove coverage dependency
36+
npm rm --silent --save-dev istanbul
37+
# Remove lint dependencies
38+
cmd.exe /c "node -pe `"Object.keys(require('./package').devDependencies).join('\n')`"" | `
39+
sls "^eslint(-|$)" | `
40+
%{ npm rm --silent --save-dev $_ }
41+
# Update Node.js modules
42+
- ps: |
43+
# Prune & rebuild node_modules
44+
if (Test-Path -Path node_modules) {
45+
npm prune
46+
npm rebuild
47+
}
48+
# Install Node.js modules
2949
- npm install
3050
build: off
3151
test_script:
32-
- node --version
33-
- npm --version
34-
- set npm_test_command=test
35-
- for /f %%l in ('npm -ps ls istanbul') do set npm_test_command=test-ci
36-
- npm run %npm_test_command%
52+
# Output version data
53+
- ps: |
54+
node --version
55+
npm --version
56+
# Run test script
57+
- npm test
3758
version: "{build}"

0 commit comments

Comments
 (0)