language: node_js sudo: false node_js: - 7 addons: jwt: secure: OYhRpW+8A0Iik+9GmHwa45ZwXeBXw/6zh6I+1w2H9g/LqPRp+Nhq3f4FSpvrrfno8lO8W4h+7s6+JOzF8C8NxNda5UUygKjF9pUphgiQdqls3YZMJlC9zXVl7gQXAHi3nG1s8vWSpwpzYD9fqczE1FX9n0+R63qX3eB6C/LbPeI= cache: directories: - ~/.npm - ~/.yarn-cache - travis_phantomjs env: global: - BIN=node ISTANBUL=false OPTION="" - SAUCE_LABS=false SAUCE_USERNAME=lodash matrix: - - BIN=phantomjs - ISTANBUL=true - SAUCE_LABS=true matrix: include: - node_js: 6 env: git: depth: 10 branches: only: - master notifications: webhooks: urls: - https://webhooks.gitter.im/e/4aab6358b0e9aed0b628 on_success: change on_failure: always before_install: # Upgrade PhantomJS. - | export PHANTOMJS_VERSION=2.1.1 export PATH=$PWD/travis_phantomjs/phantomjs-$PHANTOMJS_VERSION-linux-x86_64/bin:$PATH if [ $(phantomjs --version) != $PHANTOMJS_VERSION ]; then rm -rf $PWD/travis_phantomjs mkdir -p $PWD/travis_phantomjs wget https://github.com/Medium/phantomjs/releases/download/v$PHANTOMJS_VERSION/phantomjs-$PHANTOMJS_VERSION-linux-x86_64.tar.bz2 tar -xvf phantomjs-$PHANTOMJS_VERSION-linux-x86_64.tar.bz2 -C $PWD/travis_phantomjs fi phantomjs -v # Use exact Node version. - nvm use $TRAVIS_NODE_VERSION # Setup package managers. - npm set loglevel error - npm set progress false - npm i -g yarn@0.16.1 - yarn -V # Remove code skipped on the coverage run. - | PATTERN[0]="|\s*while\s*\([^)]+\)\s*\{\s*iteratee\(index\);\s*\}|" PATTERN[1]="|\bindex,\s*iterable\)\s*===\s*false\)[^}]+?(break;)|" PATTERN[2]="|\bcase\s+(?:dataView|promise|set|map|weakMap)CtorString:.+|g" PATTERN[3]="|\s*if\s*\(cache\.size\b[\s\S]+?\}|" PATTERN[4]="|\s*if\s*\(\!lodashFunc\)\s*\{\s*return;\s*\}|" PATTERN[5]="|\s*define\([\s\S]+?\);|" PATTERN[6]="|\s*root\._\s*=\s*_;|" if [ $ISTANBUL = true ]; then set -e for PTRN in ${PATTERN[@]}; do node ./test/remove.js $PTRN ./lodash.js done fi install: # Install packages. - yarn # Use lodash-cli from GitHub. - git clone --depth=10 --branch=master git://github.com/lodash/lodash-cli ./node_modules/lodash-cli - mkdir -p ./node_modules/lodash-cli/node_modules/lodash; cd $_; cp ../../../../lodash.js ./lodash.js; cp ../../../../package.json ./package.json - cd ../../; npm i --production; cd ../../ script: # Detect code coverage. - | if [ $ISTANBUL = true ]; then istanbul cover -x "**/vendor/**" --report lcovonly ./test/test.js -- ./lodash.js if [ $TRAVIS_SECURE_ENV_VARS = true ]; then cat ./coverage/lcov.info | coveralls cat ./coverage/coverage.json | codecov fi fi # Test in Node.js and PhantomJS. - | if [ $ISTANBUL = false ]; then node ./node_modules/lodash-cli/bin/lodash -o ./dist/lodash.js node ./node_modules/lodash-cli/bin/lodash modularize exports=node -o ./ node ./node_modules/lodash-cli/bin/lodash -d -o ./lodash.js if [ $SAUCE_LABS = false ]; then cd ./test $BIN $OPTION ./test.js ../lodash.js if [ $TRAVIS_SECURE_ENV_VARS = true ]; then $BIN $OPTION ./test.js ../dist/lodash.min.js fi fi fi # Test in Sauce Labs. - | if [ $SAUCE_LABS = true ]; then node ./node_modules/lodash-cli/bin/lodash core -o ./dist/lodash.core.js npm run build $BIN ./test/saucelabs.js name="lodash tests" runner="test/index.html?build=../dist/lodash.js&noglobals=true" tags=development $BIN ./test/saucelabs.js name="lodash tests" runner="test/index.html?build=../dist/lodash.min.js&noglobals=true" tags=production $BIN ./test/saucelabs.js name="lodash-fp tests" runner="test/fp.html?noglobals=true" tags=development $BIN ./test/saucelabs.js name="underscore tests" runner="test/underscore.html?build=../dist/lodash.js" tags=development,underscore $BIN ./test/saucelabs.js name="underscore tests" runner="test/underscore.html?build=../dist/lodash.min.js" tags=production,underscore $BIN ./test/saucelabs.js name="backbone tests" runner="test/backbone.html?build=../dist/lodash.js" tags=development,backbone $BIN ./test/saucelabs.js name="backbone tests" runner="test/backbone.html?build=../dist/lodash.min.js" tags=production,backbone $BIN ./test/saucelabs.js name="backbone tests" runner="test/backbone.html?build=../dist/lodash.core.js" tags=development,backbone $BIN ./test/saucelabs.js name="backbone tests" runner="test/backbone.html?build=../dist/lodash.core.min.js" tags=production,backbone fi