# 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 # With a retry to minimize impact of transient networking errors. - mispipe "pip install codecov" ts || mispipe "pip install codecov" ts # This is the main setup job for the test suite - mispipe "tools/travis/setup-$TEST_SUITE" ts # Clean any caches that are not in use to avoid our cache # becoming huge. - mispipe "scripts/clean-unused-caches --verbose --threshold 0" 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: yarn: true 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 # Our test suites generally run on Python 3.4, the version in # Ubuntu 14.04 trusty, which is the oldest OS release we support. 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=frontend - python: "3.4" env: TEST_SUITE=backend - python: "3.4" env: TEST_SUITE=production - python: "3.5" env: TEST_SUITE=backend sudo: required 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