forked from vitessio/vitess
-
Notifications
You must be signed in to change notification settings - Fork 0
/
.travis.yml
95 lines (95 loc) · 3.85 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
# Use container-based infrastructure (see: http://docs.travis-ci.com/user/workers/container-based-infrastructure/).
sudo: false
language: go
go:
- 1.4
addons:
apt:
packages:
# NOTE: When you add a dependency, don't forget to add comment why it's necessary.
- automake
- libtool
- memcached
- php5-cli
- php5-dev
- python-dev
- python-mysqldb
- python-pip
- python-virtualenv
- libssl-dev
- g++
- git
- pkg-config
# installs libaio1 which is required by MariaDB 10.0 server package
- libaio-dev
# required by travis script below to measure CPU and memory usage
- time
# Optional dependency. Without a running syslog daemon, Vitess will keep complaining that it could not log events and spam the logs.
- rsyslog
# Cache directories of dependencies which are built by bootstrap.sh
cache:
directories:
# Cache downloaded and extracted MariaDB 10.0 packages.
- $MYSQL_ROOT
# Cache bootstrapped dependencies (e.g. protobuf and gRPC).
- $HOME/gopath/dist/grpc/.build_finished
- $HOME/gopath/dist/grpc/lib/python2.7/site-packages
- $HOME/gopath/dist/protobuf/.build_finished
- $HOME/gopath/dist/protobuf/lib
- $HOME/gopath/dist/py-cbson/lib/python2.7/site-packages
- $HOME/gopath/dist/py-mock-1.0.1/.build_finished
- $HOME/gopath/dist/py-mock-1.0.1/lib/python2.7/site-packages
- $HOME/gopath/dist/py-vt-bson-0.3.2/lib/python2.7/site-packages
- $HOME/gopath/dist/vt-zookeeper-3.3.5/.build_finished
- $HOME/gopath/dist/vt-zookeeper-3.3.5/include
- $HOME/gopath/dist/vt-zookeeper-3.3.5/lib
# Maven repository for Java dependencies.
- $HOME/.m2
- $HOME/php
before_cache:
# Travis CI caching doesn't work with this symlink. Just delete it.
- rm $HOME/gopath/bin/zksrv.sh
# Delete this file because it keeps changing (having the latest timestamp of an update)
# and triggers a lengthy update of the cache (~19 seconds).
- rm $HOME/.m2/repository/com/youtube/vitess/gorpc-client/0.0.1-SNAPSHOT/resolver-status.properties
env:
global:
- MYSQL_FLAVOR=MariaDB
- MYSQL_ROOT=$HOME/mysql
- VT_MYSQL_ROOT=$MYSQL_ROOT/usr
# Enable parallel compilation e.g. for gRPC.
# (The Travis CI worker is allowed to use up to 2 cores, but as of 07/2015 4 parallel compilations is actually faster.)
- MAKEFLAGS=-j4
# Run go build and test with -p 4 (i.e. up to 4 packages are compiled/tested in parallel).
# As of 07/2015 this value works best in a Travis CI container.
- VT_GO_PARALLEL=4
- PHP_FLAGS="-d extension=$HOME/php/mongo.so"
- PATH="$HOME/php:$PATH"
# Add -follow to TEST_FLAGS below to print as the test runs, to diagnose stuck tests.
- TEST_FLAGS="-docker=false -timeout=5m -print-log -remote-stats=http://enisoc.com:15123/travis/stats"
matrix:
# NOTE: Travis CI schedules up to 5 tests simultaneously.
# All our tests should be spread out as evenly as possible across these 5 slots.
# We should always utilize all 5 slots because the cost of the setup is high (up to one minute).
# NOTE: Use "" if you specify a space separated list of multiple targets.
- TEST_MATRIX="-shard 0"
- TEST_MATRIX="-shard 1"
- TEST_MATRIX="-shard 2"
- TEST_MATRIX="-shard 3"
- TEST_MATRIX="-shard 4"
before_install:
- travis/download_mariadb.sh
- travis/php_init.sh
install:
- ./bootstrap.sh
script:
- source dev.env
# Log GOMAXPROCS (should be 2 as of 07/2015).
- go run travis/log_gomaxprocs.go
- go run test.go $TEST_FLAGS $TEST_MATRIX
after_failure:
# In case of errors, output log files to make it easier to debug the error.
# List all available files.
- ls -alR $HOME/gopath/vtdataroot
# Output *.log* and *.stderr files. (Add -keep-data to TEST_FLAGS above or tests will delete their logs.)
- find $HOME/gopath/vtdataroot \( -name "*.log*" -or -name "*.stderr" \) -type f -print0 | xargs -0r --verbose --max-args=1 cat