blob: 6dcf9fa458d44f12c4c1018e9a9ee7bf1fc23073 [file]
language: node_js
node_js:
- "6"
services:
- docker
git:
depth: 30
sudo:
false
addons:
firefox: "47.0.2"
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"
# Install PhantomJS and cache it
# See https://github.com/Medium/phantomjs#continuous-integration
- "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; fi"
- "if [ $(phantomjs --version) != $PHANTOMJS_VERSION ]; then wget https://github.com/Medium/phantomjs/releases/download/v$PHANTOMJS_VERSION/phantomjs-$PHANTOMJS_VERSION-linux-x86_64.tar.bz2 -O $PWD/travis_phantomjs/phantomjs-$PHANTOMJS_VERSION-linux-x86_64.tar.bz2; fi"
- "if [ $(phantomjs --version) != $PHANTOMJS_VERSION ]; then tar -xvf $PWD/travis_phantomjs/phantomjs-$PHANTOMJS_VERSION-linux-x86_64.tar.bz2 -C $PWD/travis_phantomjs; fi"
- "phantomjs --version"
# 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"
- secure: "WYQbfTXYwPfqz7t3ycqpXIDQdZ7C9kQJAP+08OF0cuR8eqhm7HxCiu9LjSNqoLAdlDmc55ygeS16Kn3Oht3zZ/i2Y7Gm75HcQfzUIb1sDv1xVm3aQmqZDJfAQ/r7fN8upBCLii/W8IUkJr1k717MpbdsTerIjyfPOb27hw0kJTM="
- secure: "Ut9pRqzbVJHxg8vt1Cx0bTv4HAroBkvOLjtHF+11f/OzfNnAORIEPnJFHqGbOTozCPOizmzgwvCGqq9gYL8SakrfiI0wBfaL+lk0ub/FPuJ1+hwrLDU0Ju4O5reL0OSu0JB+OTmXfILuRQQkD9/7uwUEbLDFId4phSq3cz1UsK0="
- secure: "MiufQQKR/EBoS7kcau/I7oYenVilysEqwx37zdgLEKlEUe3SxVOe31uLZv/bhfLNZiRuLAfmIOZmhLGnhMf0LaBzR2yC5qhBxrVHcAiTuS3q6zxpzEf02jnu+hACvj1kJJEPjpOLpEVx7ghWL4McEO0qLbdtSbQlm2IkOX1ONg0="
- secure: "b8GsgkwaNEOHmJni/rPsc1f3S1/+SxbN6hnXMV7bkSIOiRZAvcf68s3I0Sdln/OPuBmyzeLm5hZ7R8nsA/jYsYD5JUgEzcmF8glcxAeuhMgh9z5jBAfqFo5oUM6B7sE9I7t3/RZkSSkBGqOXIk/43voX1ZGIZBL17VKVPfNcoZ8="
- secure: "SSRTzT8OTeTpkGCLga74EGRfGmmRtsmAXbiXm1Xkg6tgQQmahxQJcrxr5QwHkdGdWkEIEudTd53AvZ/5KPmokmX/HiWsamdIj3WkrLdYvbEF4+mfqNa4oBBfrWXtPgPOG0vP1u5jPCK76S8qd7Ih8YrmAPUvecb04TnpVcLy+JM="
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/phantomjs running on travis
- CLIENT=selenium:firefox:47.0.2 COMMAND=test
- CLIENT=selenium:phantomjs COMMAND=test
# Test auto-compaction in Node, Phantom, and Firefox
- AUTO_COMPACTION=true CLIENT=node COMMAND=test
- AUTO_COMPACTION=true CLIENT=selenium:firefox:47.0.2 COMMAND=test
- AUTO_COMPACTION=true CLIENT=selenium:phantomjs COMMAND=test
# Test map/reduce
- TYPE=mapreduce CLIENT=node COMMAND=test
- TYPE=mapreduce CLIENT=selenium:firefox:47.0.2 COMMAND=test
- TYPE=mapreduce CLIENT=selenium:phantomjs 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:47.0.2 SERVER=pouchdb-server COMMAND=test
# Testing in saucelabs
- CLIENT=saucelabs:chrome COMMAND=test
- FETCH=1 CLIENT=selenium:firefox:47.0.2 COMMAND=test
- CLIENT=saucelabs:safari:6 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:8.1:OS X 10.10" COMMAND=test
- CLIENT="saucelabs:Android:5.1:Linux" COMMAND=test
# Test memory / fruitdown etc
- CLIENT="saucelabs:iphone:8.4:OS X 10.11" ADAPTERS=fruitdown COMMAND=test
- CLIENT=selenium:firefox:47.0.2 ADAPTERS=memory COMMAND=test
- CLIENT=selenium:firefox:47.0.2 ADAPTERS=localstorage COMMAND=test
# Test Webpack bundle
- CLIENT=selenium:firefox:47.0.2 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:47.0.2 SERVER=couchdb-master COMMAND=test
# Performance tests
- CLIENT=selenium:firefox:47.0.2 PERF=1 COMMAND=test
- PERF=1 COMMAND=test
# Test Webpack bundle
- CLIENT=selenium:firefox:47.0.2 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
allow_failures:
- env: COUCH_HOST=http://127.0.0.1:3001 CLIENT=node SERVER=couchdb-master COMMAND=test
- env: COUCH_HOST=http://127.0.0.1:3001 SKIP_MIGRATION=true CLIENT=selenium:firefox:47.0.2 SERVER=couchdb-master COMMAND=test
branches:
only:
- master
- /^greenkeeper/.*$/
cache:
directories:
- $HOME/.npm
# See https://github.com/gr2m/selsa
- node_modules/selenium-standalone/.selenium
# See https://github.com/Medium/phantomjs#continuous-integration
- travis_phantomjs