mirror of
https://github.com/zulip/zulip.git
synced 2025-11-02 13:03:29 +00:00
Also add a comment explaining why the order in this file matters. It's not obvious that it should, so it's otherwise tempting to reorder them to optimize only for readability.
86 lines
2.7 KiB
YAML
86 lines
2.7 KiB
YAML
# See https://zulip.readthedocs.io/en/latest/events-system.html for
|
|
# high-level documentation on our Travis CI setup.
|
|
dist: trusty
|
|
before_install:
|
|
- sudo apt-get install moreutils # To use 'ts' and 'mispipe' for timing logs.
|
|
install:
|
|
# 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
|