summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey Shepelev <temotor@gmail.com>2015-02-25 01:59:29 +0300
committerSergey Shepelev <temotor@gmail.com>2015-09-06 14:01:15 +0300
commit43c439f74552c539cc5444948d3ce4138685613a (patch)
tree5b62d43592f898ef59338ee437c2ddb77575fa04
parent001f31f8f8dfc581795f282609027b26c8a31833 (diff)
downloadeventlet-travis-fast.tar.gz
-rw-r--r--.travis.yml52
-rwxr-xr-xtests/build-dependencies.bash66
2 files changed, 97 insertions, 21 deletions
diff --git a/.travis.yml b/.travis.yml
index ea7e1f0..94b1379 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,25 +1,30 @@
language: python
python: 2.7
env:
- - TOX_ENV=pep8
- - TOX_ENV=py26-epolls
- - TOX_ENV=py26-poll
- - TOX_ENV=py26-selects
- - TOX_ENV=py27-dns
- - TOX_ENV=py27-epolls
- - TOX_ENV=py27-poll
- - TOX_ENV=py27-selects
- - TOX_ENV=py33-epolls
- - TOX_ENV=py33-poll
- - TOX_ENV=py33-selects
- - TOX_ENV=py34-dns
- - TOX_ENV=py34-epolls
- - TOX_ENV=py34-poll
- - TOX_ENV=py34-selects
- - TOX_ENV=pypy-dns
- - TOX_ENV=pypy-epolls
- - TOX_ENV=pypy-poll
- - TOX_ENV=pypy-selects
+ global:
+ - LDFLAGS="-L$HOME/fakeroot/lib"
+ - PIP_DOWNLOAD_CACHE="$HOME/.cache/pip"
+ - PKG_CONFIG_PATH="$HOME/fakeroot/lib/pkgconfig"
+ matrix:
+ - TOX_ENV=pep8
+ - TOX_ENV=py26-epolls
+ - TOX_ENV=py26-poll
+ - TOX_ENV=py26-selects
+ - TOX_ENV=py27-dns
+ - TOX_ENV=py27-epolls
+ - TOX_ENV=py27-poll
+ - TOX_ENV=py27-selects
+ - TOX_ENV=py33-epolls
+ - TOX_ENV=py33-poll
+ - TOX_ENV=py33-selects
+ - TOX_ENV=py34-dns
+ - TOX_ENV=py34-epolls
+ - TOX_ENV=py34-poll
+ - TOX_ENV=py34-selects
+ - TOX_ENV=pypy-dns
+ - TOX_ENV=pypy-epolls
+ - TOX_ENV=pypy-poll
+ - TOX_ENV=pypy-selects
matrix:
fast_finish: true
allow_failures:
@@ -27,12 +32,16 @@ matrix:
- env: TOX_ENV=pypy-epolls
- env: TOX_ENV=pypy-poll
- env: TOX_ENV=pypy-selects
+cache:
+ directories:
+ - $HOME/.cache
+ - $HOME/fakeroot
install:
- - sudo apt-get update -qq
- - sudo apt-get install -qq libssl-dev libmysqlclient-dev libpq-dev libzmq3-dev
- pip install --upgrade pip setuptools tox virtualenv
+ - ls -lah $HOME
before_script:
- "export EVENTLET_DB_TEST_AUTH='{\"psycopg2\": {\"user\": \"postgres\"}, \"MySQLdb\": {\"passwd\": \"\", \"host\": \"localhost\", \"user\": \"root\"}}'"
+ - ./tests/build-dependencies.bash $HOME/fakeroot
script:
- tox -v -v -e $TOX_ENV
after_failure:
@@ -40,3 +49,4 @@ after_failure:
- echo "pip.log\n"; cat $HOME/.pip/pip.log
notifications:
slack: eventlet-net:OYrQ1JE3hdTD78yQY1yZJnnc
+sudo: false
diff --git a/tests/build-dependencies.bash b/tests/build-dependencies.bash
new file mode 100755
index 0000000..d9991de
--- /dev/null
+++ b/tests/build-dependencies.bash
@@ -0,0 +1,66 @@
+#!/bin/bash -ex
+curl_cache="$HOME/.cache/curl"
+root=$(readlink -f $1)
+PKG_CONFIG_PATH="$root/lib/pkgconfig"
+
+if [[ -z "$root" ]]; then
+ echo "$0 <fakeroot>" >&2
+ exit 1
+fi
+
+install -d $root
+install -d $curl_cache
+
+# libssl-dev libmysqlclient-dev libpq-dev libzmq3-dev
+
+# libssl
+if [[ ! -e $root/include/openssl/ssl.h ]]; then
+ path="$curl_cache/openssl.tar.gz"
+ url="https://openssl.org/source/openssl-1.0.2d.tar.gz"
+ if [[ ! -e "$path" ]]; then
+ curl -LS "$url" |tee "$path" |md5sum >$curl_cache/openssl.have.md5
+ # TODO: verify sha256 671c36487785628a703374c652ad2cebea45fa920ae5681515df25d9f2c9a8c8
+ fi
+ tar -xzf "$path"
+ (
+ cd openssl-1.0.2d
+ ./config --prefix=$root no-shared -fPIC -DOPENSSL_PIC
+ make
+ make install
+ )
+fi
+
+# libmysqlclient
+if [ ! -e $root/include/mysql/mysql.h ]; then
+ path="$curl_cache/libmysqlclient.deb"
+ url="http://cdn.mysql.com/Downloads/MySQL-5.6/libmysqlclient18_5.6.26-1ubuntu14.10_amd64.deb"
+ if [[ ! -e "$path" ]]; then
+ curl -LS "$url" |tee "$path" |md5sum >$curl_cache/mysql.have.md5
+ # TODO: verify md5
+ fi
+ install -d tmp
+ (
+ cd tmp
+ ar x "$path"
+ tar -xJf data.tar.xz
+ cp -al usr/lib "$root/"
+ )
+ rm -rf ./tmp
+ path="$curl_cache/libmysqlclient-dev.deb"
+ url="http://cdn.mysql.com/Downloads/MySQL-5.6/libmysqlclient-dev_5.6.26-1ubuntu14.10_amd64.deb"
+ if [[ ! -e "$path" ]]; then
+ curl -LS "$url" |tee "$path" |md5sum >$curl_cache/mysql.have.md5
+ # TODO: verify md5
+ fi
+ install -d tmp
+ (
+ cd tmp
+ ar x "$path"
+ tar -xJf data.tar.xz
+ cp -al usr/include "$root/"
+ cp -al usr/lib "$root/"
+ )
+ rm -rf ./tmp
+fi
+
+ldconfig || true