# See https://zulip.readthedocs.io/en/latest/events-system.html for # high-level documentation on our Travis CI setup. dist: trusty install: # Disable Travis CI's built-in NVM installation - mv ~/.nvm ~/.travis-nvm-disabled # Install coveralls, the library for the code coverage reporting tool we use - pip install coveralls # This is the main setup job for the test suite - tools/travis/setup-$TEST_SUITE # Clean any virtualenvs that are not in use to avoid our cache # becoming huge. TODO: Add similar cleanup code for the other caches. - tools/clean-venv-cache --travis script: # We unset GEM_PATH here as a hack to work around Travis CI having # broken running their system puppet with Ruby. See # https://travis-ci.org/zulip/zulip/jobs/240120991 for an example traceback. - unset GEM_PATH - ./tools/travis/$TEST_SUITE cache: - apt: false - directories: - $HOME/zulip-venv-cache - $HOME/zulip-npm-cache - $HOME/zulip-emoji-cache - $HOME/node env: global: - COVERAGE_FILE=var/.coverage - COVERALLS_PARALLEL=true - COVERALLS_SERVICE_NAME=travis-pro - COVERALLS_REPO_TOKEN=hnXUEBKsORKHc8xIENGs9JjktlTb2HKlG - BOTO_CONFIG=/tmp/nowhere language: python # We run all of our test suites for both Python 2.7 and 3.4, with the # exception of static analysis, which is just run once (and checks # against both Python versions). matrix: include: - python: "3.4" env: TEST_SUITE=static-analysis - python: "3.4" env: TEST_SUITE=production - python: "2.7" env: TEST_SUITE=production - python: "2.7" env: TEST_SUITE=frontend - python: "3.4" env: TEST_SUITE=frontend - python: "2.7" env: TEST_SUITE=backend - python: "3.4" env: TEST_SUITE=backend sudo: required services: - docker addons: artifacts: paths: # Casper debugging data (screenshots, etc.) is super useful for # debugging test flakes. - $(ls var/casper/* | tr "\n" ":") - $(ls /tmp/zulip-test-event-log/* | tr "\n" ":") postgresql: "9.3" after_success: coveralls notifications: webhooks: urls: - https://coveralls.io/webhook?repo_token=$COVERALLS_REPO_TOKEN - https://zulip.org/zulipbot/travis on_success: always on_failure: always