Skip to content

Commit 5943851

Browse files
committed
build: restructure CI build steps
1 parent 2f2f4f3 commit 5943851

File tree

2 files changed

+73
-22
lines changed

2 files changed

+73
-22
lines changed

.travis.yml

Lines changed: 42 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -19,18 +19,49 @@ cache:
1919
directories:
2020
- node_modules
2121
before_install:
22-
# Skip updating shrinkwrap / lock
23-
- "npm config set shrinkwrap false"
22+
# Configure npm
23+
- |
24+
# Skip updating shrinkwrap / lock
25+
npm config set shrinkwrap false
2426
# Setup Node.js version-specific dependencies
25-
- "test $TRAVIS_NODE_VERSION != '0.8' || npm rm --save-dev istanbul"
26-
- "test $(echo $TRAVIS_NODE_VERSION | cut -d. -f1) -ge 6 || npm rm --save-dev $(grep -E '\"eslint\\S*\"' package.json | cut -d'\"' -f2)"
27+
- |
28+
# eslint for linting
29+
# - remove on Node.js < 6
30+
if [[ "$(cut -d. -f1 <<< "$TRAVIS_NODE_VERSION")" -lt 6 ]]; then
31+
node -pe 'Object.keys(require("./package").devDependencies).join("\n")' | \
32+
grep -E '^eslint(-|$)' | \
33+
xargs npm rm --save-dev
34+
fi
35+
- |
36+
# istanbul for coverage
37+
# - remove for Node.js < 0.10
38+
if [[ "$(cut -d. -f1 <<< "$TRAVIS_NODE_VERSION")" -eq 0 && "$(cut -d. -f2 <<< "$TRAVIS_NODE_VERSION")" -lt 10 ]]; then
39+
npm rm --silent --save-dev istanbul
40+
fi
2741
# Update Node.js modules
28-
- "test ! -d node_modules || npm prune"
29-
- "test ! -d node_modules || npm rebuild"
42+
- |
43+
# Prune and rebuild node_modules
44+
if [[ -d node_modules ]]; then
45+
npm prune
46+
npm rebuild
47+
fi
3048
script:
31-
# Run test script, depending on istanbul install
32-
- "test ! -z $(npm -ps ls istanbul) || npm test"
33-
- "test -z $(npm -ps ls istanbul) || npm run-script test-ci"
34-
- "test -z $(npm -ps ls eslint ) || npm run-script lint"
49+
# Run test script
50+
- |
51+
if npm -ps ls istanbul | grep -q istanbul; then
52+
npm run test-ci
53+
else
54+
npm test
55+
fi
56+
# Run linting
57+
- |
58+
if npm -ps ls eslint | grep -q eslint; then
59+
npm run lint
60+
fi
3561
after_script:
36-
- "test -e ./coverage/lcov.info && npm install coveralls@2.11.2 && cat ./coverage/lcov.info | coveralls"
62+
- |
63+
# Upload coverage to coveralls
64+
if [[ -f ./coverage/lcov.info ]]; then
65+
npm install --save-dev coveralls@2.13.3
66+
coveralls < ./coverage/lcov.info
67+
fi

appveyor.yml

Lines changed: 31 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -17,21 +17,41 @@ environment:
1717
cache:
1818
- node_modules
1919
install:
20+
# Install Node.js
2021
- ps: >-
2122
try { Install-Product node $env:nodejs_version -ErrorAction Stop }
2223
catch { Update-NodeJsInstallation (Get-NodeJsLatestBuild $env:nodejs_version) }
23-
- npm config set shrinkwrap false
24-
- if "%nodejs_version%" equ "0.8" npm rm --save-dev istanbul
25-
- if "%nodejs_version%" equ "0.8" npm config set strict-ssl false
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
24+
# Configure npm
25+
- ps: |
26+
# Skip updating shrinkwrap / lock
27+
npm config set shrinkwrap false
28+
# Skip SSL validation on Node.js < 0.10
29+
if ([int]$env:nodejs_version.split(".")[0] -eq 0 -and [int]$env:nodejs_version.split(".")[1] -lt 10) {
30+
npm config set strict-ssl false
31+
}
32+
# Remove all non-test dependencies
33+
- ps: |
34+
# Remove coverage dependency
35+
npm rm --silent --save-dev istanbul
36+
# Remove lint dependencies
37+
cmd.exe /c "node -pe `"Object.keys(require('./package').devDependencies).join('\n')`"" | `
38+
sls "^eslint(-|$)" | `
39+
%{ npm rm --silent --save-dev $_ }
40+
# Update Node.js modules
41+
- ps: |
42+
# Prune & rebuild node_modules
43+
if (Test-Path -Path node_modules) {
44+
npm prune
45+
npm rebuild
46+
}
47+
# Install Node.js modules
2948
- npm install
3049
build: off
3150
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%
51+
# Output version data
52+
- ps: |
53+
node --version
54+
npm --version
55+
# Run test script
56+
- npm test
3757
version: "{build}"

0 commit comments

Comments
 (0)