env: global: - DATABASE_URL='mysql://root@localhost/test_treeherder' - DATABASE_URL_RO='mysql://root@localhost/test_treeherder' - TREEHERDER_DJANGO_SECRET_KEY='secretkey-1234' matrix: include: # Each entry here creates another sub-job. - env: linters sudo: false language: python python: "2.7" cache: directories: - ~/venv - node_modules before_install: # Create a clean virtualenv rather than using the one given to us, # to work around: https://github.com/travis-ci/travis-ci/issues/4873 - if [[ ! -f ~/venv/bin/activate ]]; then virtualenv ~/venv; fi - source ~/venv/bin/activate install: - npm install - ./bin/peep.py install --disable-pip-version-check -r requirements/common.txt -r requirements/dev.txt script: - grunt checkjs - flake8 --show-source - isort --check-only --diff --quiet - env: ui-tests sudo: false language: node_js node_js: "4.2.1" cache: # Note: This won't re-use the same cache as the linters job, # since caches are tied to the language/version combination. directories: - node_modules install: - npm install before_script: # Required for Karma tests (http://docs.travis-ci.com/user/gui-and-headless-browsers/) - export DISPLAY=:99.0 - sh -e /etc/init.d/xvfb start script: - npm test - ./node_modules/.bin/grunt build --production - env: python-tests-main # Once mysql 5.6 is available on the container infra, we should switch back # to it, by setting `sudo: false`, so we can use caching for this job. sudo: required dist: trusty language: python python: "2.7" services: - rabbitmq - memcached before_install: # Manually install mysql 5.6 since the default is v5.5. - sudo apt-get -qq update - sudo apt-get -qq install mysql-server-5.6 mysql-client-5.6 mysql-client-core-5.6 install: # This uses pip rather than peep, since it takes half the time, and unlike the other # jobs, this one cannot use caching. The hashes are validated in the linters job. - pip install --disable-pip-version-check -r requirements/common.txt -r requirements/dev.txt script: - py.test tests/ --runslow --ignore=tests/e2e/ --ignore=tests/etl/ --ignore=tests/log_parser/ - env: python-tests-e2e-etl-and-logparser # Once mysql 5.6 is available on the container infra, we should switch back # to it, by setting `sudo: false`, so we can use caching for this job. sudo: required dist: trusty language: python python: "2.7" services: - rabbitmq - memcached before_install: # Manually install mysql 5.6 since the default is v5.5. - sudo apt-get -qq update - sudo apt-get -qq install mysql-server-5.6 mysql-client-5.6 mysql-client-core-5.6 install: # This uses pip rather than peep, since it takes half the time, and unlike the other # jobs, this one cannot use caching. The hashes are validated in the linters job. - pip install --disable-pip-version-check -r requirements/common.txt -r requirements/dev.txt script: - py.test tests/e2e/ tests/etl/ tests/log_parser/ --runslow notifications: email: on_success: never on_failure: always # Do not run these on the travis server at this time. # The end to end tests require the service to be running, but travis can't # start the service for us. So we would have to have the default point to # a dedicated dev service instance that is reach-able by travis. However, we # require /etc/hosts to have an entry at this point to reach our current dev # server. So these tests should be run only locally for now. # - karma start config/karma-e2e.conf.js --reporters=dots --browsers=Firefox