travis: big cleanup, make it work on OS-X

Travis defaults to giving us an OS-X 10.9 box, which has an OpenSSL that
is too old for the current cryptography-1.4 (note that a previous
version of this branch worked, but only because the previous
cryptography-1.3.x didn't enforce the OpenSSL version).

On OS-X, this new .travis.yml does the following:

* set "osx_image: xcode7" to get us 10.10, with newer OpenSSL
* uses system python, not homebrew
* installs pip with get-pip.py, since system python doesn't have it
* adds the --user directory to $PATH, since OS-X python doesn't have it
  by default

On both linux and OS-X, this:

* installs tox and coveralls with --user, not to the system
* doesn't use sudo to run tox
* prints some extra debug info in case it's useful later

Closes #285
This commit is contained in:
Brian Warner 2016-06-21 13:21:05 -07:00
parent 7e10b5d0e5
commit 5bf7fab99d

View File

@ -2,6 +2,10 @@ sudo: true
os:
- "linux"
- "osx"
# xcode7 gives us OS-X 10.10, which gives us newer OpenSSL (the default gives
# us 10.9, which appears to have OpenSSL-0.9.8, which is rejected by
# cryptography-1.4)
osx_image: xcode7
cache: pip
before_cache:
- rm -f $HOME/.cache/pip/log/debug.log
@ -13,16 +17,16 @@ before_install:
- git config --global user.email "travis-tahoe@tahoe-lafs.org"
- git config --global user.name "Travis Tahoe"
- git fetch --depth=1000
- python misc/build_helpers/show-tool-versions.py
install:
- if [ "${TRAVIS_OS_NAME}" = "osx" ]; then echo installing on osx...; fi
- if [ "${TRAVIS_OS_NAME}" = "osx" ]; then brew update && brew install python; fi
- if [ "${TRAVIS_OS_NAME}" = "osx" ]; then export PATH=/usr/local/bin:$PATH; fi
- if [ "${TRAVIS_OS_NAME}" = "linux" ]; then sudo pip install coveralls tox; fi
- if [ "${TRAVIS_OS_NAME}" = "osx" ]; then pip install coveralls tox; fi
# ~/.local/bin is on $PATH by default, but on OS-X, --user puts it elsewhere
- if [ "${TRAVIS_OS_NAME}" = "osx" ]; then export PATH=$HOME/Library/Python/2.7/bin:$PATH; fi
- if [ "${TRAVIS_OS_NAME}" = "osx" ]; then wget https://bootstrap.pypa.io/get-pip.py && sudo python ./get-pip.py; fi
- pip list
- pip install --user coveralls tox
- echo $PATH; which python; which pip; which tox
- python misc/build_helpers/show-tool-versions.py
script:
- if [ "${TRAVIS_OS_NAME}" = "linux" ]; then sudo tox -e coverage; fi
- if [ "${TRAVIS_OS_NAME}" = "osx" ]; then tox -e coverage; fi
- tox -e coverage
after_success:
coveralls
notifications: