| language: node_js |
| |
| node_js: |
| - "6" |
| |
| services: |
| - docker |
| |
| git: |
| depth: 30 |
| |
| sudo: |
| false |
| |
| addons: |
| firefox: latest |
| jwt: |
| secure: YlCp9qGHmnnATcScIQVyOt8eI9FxLhMGAz9iRTHh7r41ADjfGJUzyqkWoBLcCagiQWtqtUujukPAtRuOibbBp9SvmGp+IIdbwHVUDvSZNOvGxkQ1qczeGxJcnht+2YNoCwfzkHW4vFrNiGOULdjvbWAB4sAJ8N0AZPShURwXU1E= |
| |
| before_install: |
| # Because Saucelabs doesnt proxy 5984 on OSX |
| - "if [ -z \"$COUCH_HOST\" ]; then export COUCH_HOST=http://127.0.0.1:3000; fi" |
| |
| before_script: |
| # Our test-browser.js script uses FIREFOX_BIN to find the Firefox binary |
| # See https://github.com/travis-ci/travis-ci/issues/4649 |
| - echo "using firefox $(firefox --version)" |
| - export FIREFOX_BIN=$(which firefox) |
| # The next two lines are required for Firefox to run on Travis |
| - "export DISPLAY=:99.0" |
| - "sh -e /etc/init.d/xvfb start" |
| # Fail early so we dont run hours of saucelabs if we know there |
| # is a lint failure |
| - npm run eslint |
| |
| # travis_retry will try up to 3 times to run the script. our tests |
| # are flaky enough (Selenium, SauceLabs, network, etc.) that this |
| # mitigates a lot of false negatives |
| script: travis_retry npm run $COMMAND |
| |
| env: |
| global: |
| - NPM_CONFIG_PROGRESS="false" |
| - SAUCE_USERNAME=pouchdb |
| |
| matrix: |
| - CLIENT=node COMMAND=test |
| |
| # Test WebSQL in Node (using node-websql) |
| - CLIENT=node ADAPTER=websql COMMAND=test |
| |
| # Test in-memory in Node |
| - CLIENT=node ADAPTER=memory COMMAND=test |
| |
| # Test in firefox running on travis |
| - CLIENT=selenium:firefox COMMAND=test |
| - CLIENT=selenium:firefox POUCHDB_SRC="../../packages/node_modules/pouchdb/dist/pouchdb.min.js" COMMAND=test |
| |
| # Test auto-compaction in Node and Firefox |
| - AUTO_COMPACTION=true CLIENT=node COMMAND=test |
| - AUTO_COMPACTION=true CLIENT=selenium:firefox COMMAND=test |
| |
| # Test map/reduce |
| - TYPE=mapreduce CLIENT=node COMMAND=test |
| - TYPE=mapreduce CLIENT=selenium:firefox COMMAND=test |
| |
| # Test pouchdb-find |
| - COUCH_HOST=http://127.0.0.1:3001 TYPE=find PLUGINS=pouchdb-find CLIENT=node SERVER=couchdb-master COMMAND=test |
| - TYPE=find PLUGINS=pouchdb-find CLIENT=selenium:firefox SERVER=pouchdb-server COMMAND=test |
| |
| # Testing in saucelabs |
| - CLIENT=saucelabs:chrome COMMAND=test |
| - SKIP_MIGRATION=true CLIENT=saucelabs:safari COMMAND=test |
| - CLIENT="saucelabs:internet explorer:10:Windows 8" COMMAND=test |
| |
| # split up the android+iphone tests as it goes over time |
| - SKIP_MIGRATION=true CLIENT=saucelabs:iphone COMMAND=test |
| - CLIENT="saucelabs:Android:6.0:Linux" COMMAND=test |
| |
| # Test memory / fruitdown etc |
| - CLIENT="saucelabs:iphone:8.4:OS X 10.11" ADAPTERS=fruitdown COMMAND=test |
| - CLIENT=selenium:firefox ADAPTERS=memory COMMAND=test |
| - CLIENT=selenium:firefox ADAPTERS=localstorage COMMAND=test |
| |
| # Test Webpack bundle |
| - CLIENT=selenium:firefox COMMAND=test-webpack |
| |
| # Test CouchDB master (aka bigcouch branch) |
| - COUCH_HOST=http://127.0.0.1:3001 CLIENT=node SERVER=couchdb-master COMMAND=test |
| - COUCH_HOST=http://127.0.0.1:3001 SKIP_MIGRATION=true CLIENT=selenium:firefox SERVER=couchdb-master COMMAND=test |
| |
| # Performance tests |
| - CLIENT=selenium:firefox PERF=1 COMMAND=test |
| - PERF=1 COMMAND=test |
| |
| # Test Webpack bundle |
| - CLIENT=selenium:firefox NEXT=1 COMMAND=test |
| |
| - COMMAND=test-unit |
| - COMMAND=test-component |
| - COMMAND=test-fuzzy |
| # need extra env variable COVERAGE here because of some subtlety in Travis containers not |
| # passing the process.env.COVERAGE to the node process |
| - COMMAND=report-coverage COVERAGE=1 SERVER=pouchdb-server POUCHDB_SERVER_FLAGS=--in-memory PLUGINS=pouchdb-find |
| - COMMAND=verify-build |
| |
| matrix: |
| fast_finish: true |
| include: |
| - node_js: "4" |
| services: docker |
| env: CLIENT=node COMMAND=test |
| - node_js: "7" |
| services: docker |
| env: CLIENT=node COMMAND=test |
| - node_js: "8" |
| services: docker |
| env: CLIENT=node COMMAND=test |
| allow_failures: |
| # localdown and fruitdown adapters broken by level upgrade @ |
| # https://github.com/pouchdb/pouchdb/pull/6941#issuecomment-352166744 |
| - env: CLIENT="saucelabs:iphone:8.4:OS X 10.11" ADAPTERS=fruitdown COMMAND=test |
| - env: CLIENT=selenium:firefox ADAPTERS=localstorage COMMAND=test |
| # TODO: disabled as part of https://github.com/pouchdb/pouchdb/issues/6944 |
| # but needs reenabled |
| - env: CLIENT="saucelabs:internet explorer:10:Windows 8" COMMAND=test |
| |
| branches: |
| only: |
| - master |
| - /^greenkeeper/.*$/ |
| |
| cache: |
| directories: |
| - $HOME/.npm |
| # See https://github.com/gr2m/selsa |
| - node_modules/selenium-standalone/.selenium |