forked from mozilla/treeherder
/
.travis.yml
103 lines (97 loc) · 3.77 KB
/
.travis.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
env:
global:
- DATABASE_URL='mysql://root@localhost/test_treeherder'
- DATABASE_URL_RO='mysql://root@localhost/test_treeherder'
- BROKER_URL='amqp://guest:guest@localhost:5672//'
- TREEHERDER_DJANGO_SECRET_KEY='secretkey-1234'
matrix:
include:
# Each entry here creates another sub-job.
- env: linters
sudo: false
language: python
python: "2.7.11"
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
- pip install -U pip==8.0.2
install:
- npm install
- pip install --disable-pip-version-check --require-hashes -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: "5.3.0"
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.11"
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
- pip install -U pip==8.0.2
install:
- pip install --disable-pip-version-check --require-hashes -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.11"
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
- pip install -U pip==8.0.2
install:
- pip install --disable-pip-version-check --require-hashes -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