# See https://zulip.readthedocs.io/en/latest/events-system.html for # high-level documentation on our Travis CI setup. dist: trusty install: # Install moreutils so we can use `ts` and `mispipe` in the following. - sudo ./tools/travis/install-moreutils # Disable Travis CI's built-in NVM installation - mispipe "mv ~/.nvm ~/.travis-nvm-disabled" ts # Install codecov, the library for the code coverage reporting tool we use - mispipe "pip install codecov" ts # This is the main setup job for the test suite - mispipe "tools/travis/setup-$TEST_SUITE" ts # Clean any virtualenvs that are not in use to avoid our cache # becoming huge. - mispipe "tools/clean-venv-cache --travis" ts # Clean any npm cache which was generated but not required anymore to avoid # our cache becoming huge. - mispipe "tools/clean-npm-cache --travis" ts # Clean any emoji cache which was generated but not required anymore to avoid # our cache becoming huge. - mispipe "tools/clean-emoji-cache --travis" ts 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 - mispipe "./tools/travis/$TEST_SUITE" ts cache: - apt: false - directories: - $HOME/zulip-venv-cache - $HOME/zulip-npm-cache - $HOME/zulip-emoji-cache - $HOME/node env: global: - 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: # Travis will actually run the jobs in the order they're listed here; # that doesn't seem to be documented, but it's what we see empirically. # We only get 4 jobs running at a time, so we try to make the first few # the most likely to break. - python: "3.4" env: TEST_SUITE=static-analysis - python: "3.4" env: TEST_SUITE=frontend - python: "3.4" env: TEST_SUITE=backend - python: "3.4" env: TEST_SUITE=production - python: "2.7" env: TEST_SUITE=frontend - python: "2.7" env: TEST_SUITE=backend - python: "2.7" env: TEST_SUITE=production 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: - codecov notifications: webhooks: urls: - https://zulip.org/zulipbot/travis on_success: always on_failure: always