language: python # Runs jobs on container based infrastructure sudo: false # Saves pip downloads/wheels between builds cache: directories: - $HOME/.cache/pip addons: apt: packages: - libudev-dev - libusb-1.0-0-dev env: global: PROTOBUF_VERSION=3.4.0 python: - "3.3" - "3.4" - "3.5" - "3.6" install: # Optimisation: build requirements as wheels, which get cached by Travis - pip install "pip>=9.0" wheel # pip 9.0 understands `python_requires` constraints - pip install "setuptools>=38" # setuptools >= 38 are capable of using prebuilt wheels - pip install "virtualenv<16.0.0" # virtualenv 16.0.0 drops support for py33 without properly declaring it - pip install tox-travis - pip install flake8 # protobuf-related dependencies - curl -LO "https://github.com/google/protobuf/releases/download/v${PROTOBUF_VERSION}/protoc-${PROTOBUF_VERSION}-linux-x86_64.zip" - unzip "protoc-${PROTOBUF_VERSION}-linux-x86_64.zip" -d protoc - export PATH="$(pwd)/protoc/bin:$PATH" - pip install "protobuf == ${PROTOBUF_VERSION}" before_script: - ./trigger-travis.sh script: # check that generated protobuf messages are identical to in-tree ones - ./tools/build_protobuf messages.tmp && diff -ur messages.tmp trezorlib/messages && rm -r messages.tmp - python setup.py install - flake8 - tox notifications: webhooks: urls: - http://ci-bot.satoshilabs.com:5000/travis on_success: always on_failure: always on_start: always