build: restructure CI build steps
This commit is contained in:
+42
-13
@@ -20,20 +20,49 @@ cache:
|
||||
directories:
|
||||
- node_modules
|
||||
before_install:
|
||||
# Skip updating shrinkwrap / lock
|
||||
- "npm config set shrinkwrap false"
|
||||
|
||||
# Configure npm
|
||||
- |
|
||||
# Skip updating shrinkwrap / lock
|
||||
npm config set shrinkwrap false
|
||||
# Setup Node.js version-specific dependencies
|
||||
- "test $TRAVIS_NODE_VERSION != '0.8' || npm rm --save-dev istanbul"
|
||||
- "test $(echo $TRAVIS_NODE_VERSION | cut -d. -f1) -ge 6 || npm rm --save-dev $(grep -E '\"eslint\\S*\"' package.json | cut -d'\"' -f2)"
|
||||
|
||||
- |
|
||||
# istanbul for coverage
|
||||
# - remove for Node.js < 0.10
|
||||
if [[ "$(cut -d. -f1 <<< "$TRAVIS_NODE_VERSION")" -eq 0 && "$(cut -d. -f2 <<< "$TRAVIS_NODE_VERSION")" -lt 10 ]]; then
|
||||
npm rm --silent --save-dev istanbul
|
||||
fi
|
||||
- |
|
||||
# eslint for linting
|
||||
# - remove on Node.js < 6
|
||||
if [[ "$(cut -d. -f1 <<< "$TRAVIS_NODE_VERSION")" -lt 6 ]]; then
|
||||
node -pe 'Object.keys(require("./package").devDependencies).join("\n")' | \
|
||||
grep -E '^eslint(-|$)' | \
|
||||
xargs npm rm --save-dev
|
||||
fi
|
||||
# Update Node.js modules
|
||||
- "test ! -d node_modules || npm prune"
|
||||
- "test ! -d node_modules || npm rebuild"
|
||||
- |
|
||||
# Prune and rebuild node_modules
|
||||
if [[ -d node_modules ]]; then
|
||||
npm prune
|
||||
npm rebuild
|
||||
fi
|
||||
script:
|
||||
# Run test script, depending on istanbul install
|
||||
- "test ! -z $(npm -ps ls istanbul) || npm test"
|
||||
- "test -z $(npm -ps ls istanbul) || npm run-script test-ci"
|
||||
- "test -z $(npm -ps ls eslint) || npm run-script lint"
|
||||
# Run test script
|
||||
- |
|
||||
if npm -ps ls istanbul | grep -q istanbul; then
|
||||
npm run test-ci
|
||||
else
|
||||
npm test
|
||||
fi
|
||||
# Run linting
|
||||
- |
|
||||
if npm -ps ls eslint | grep -q eslint; then
|
||||
npm run lint
|
||||
fi
|
||||
after_script:
|
||||
- "test -e ./coverage/lcov.info && npm install coveralls@2 && cat ./coverage/lcov.info | coveralls"
|
||||
- |
|
||||
# Upload coverage to coveralls
|
||||
if [[ -f ./coverage/lcov.info ]]; then
|
||||
npm install --save-dev coveralls@2.13.3
|
||||
coveralls < ./coverage/lcov.info
|
||||
fi
|
||||
|
||||
+31
-11
@@ -18,21 +18,41 @@ environment:
|
||||
cache:
|
||||
- node_modules
|
||||
install:
|
||||
# Install Node.js
|
||||
- ps: >-
|
||||
try { Install-Product node $env:nodejs_version -ErrorAction Stop }
|
||||
catch { Update-NodeJsInstallation (Get-NodeJsLatestBuild $env:nodejs_version) }
|
||||
- npm config set shrinkwrap false
|
||||
- if "%nodejs_version%" equ "0.8" npm config set strict-ssl false
|
||||
- if "%nodejs_version%" equ "0.8" npm rm --save-dev istanbul
|
||||
- for /f tokens^=2^ delims^=^" %%m in ('findstr /r /c:"eslint[^ ]" package.json') do call npm rm --save-dev %%m
|
||||
- if exist node_modules npm prune
|
||||
- if exist node_modules npm rebuild
|
||||
# Configure npm
|
||||
- ps: |
|
||||
# Skip updating shrinkwrap / lock
|
||||
npm config set shrinkwrap false
|
||||
# Skip SSL validation on Node.js < 0.10
|
||||
if ([int]$env:nodejs_version.split(".")[0] -eq 0 -and [int]$env:nodejs_version.split(".")[1] -lt 10) {
|
||||
npm config set strict-ssl false
|
||||
}
|
||||
# Setup Node.js version-specific dependencies
|
||||
- ps: |
|
||||
# Remove coverage dependency
|
||||
npm rm --silent --save-dev istanbul
|
||||
# Remove lint dependencies
|
||||
cmd.exe /c "node -pe `"Object.keys(require('./package').devDependencies).join('\n')`"" | `
|
||||
sls "^eslint(-|$)" | `
|
||||
%{ npm rm --silent --save-dev $_ }
|
||||
# Update Node.js modules
|
||||
- ps: |
|
||||
# Prune & rebuild node_modules
|
||||
if (Test-Path -Path node_modules) {
|
||||
npm prune
|
||||
npm rebuild
|
||||
}
|
||||
# Install Node.js modules
|
||||
- npm install
|
||||
build: off
|
||||
test_script:
|
||||
- node --version
|
||||
- npm --version
|
||||
- set npm_test_command=test
|
||||
- for /f %%l in ('npm -ps ls istanbul') do set npm_test_command=test-ci
|
||||
- npm run %npm_test_command%
|
||||
# Output version data
|
||||
- ps: |
|
||||
node --version
|
||||
npm --version
|
||||
# Run test script
|
||||
- npm test
|
||||
version: "{build}"
|
||||
|
||||
Reference in New Issue
Block a user