language: python # Linux setup dist: xenial cache: directories: - "$HOME/.cache/pip" python: # CPython; only 3.6 is supported - "3.6" - "3.7" - "3.8" - nightly # PyPy: - pypy3 env: install: - if [[ "$TEST_SOCKETCAN" ]]; then sudo bash test/open_vcan.sh ; fi - python setup.py install script: - | # install tox pip install tox # Run the tests tox -e travis jobs: allow_failures: # we allow all dev & nightly builds to fail, since these python versions might # still be very unstable - python: nightly include: # Note no matrix support when using stages. # Stages with the same name get run in parallel. # Jobs within a stage can also be named. # Unit Testing Stage # testing socketcan on Trusty & Python 3.6, since it is not available on Xenial - stage: test name: Socketcan os: linux dist: trusty python: "3.6" sudo: required env: TEST_SOCKETCAN=TRUE # testing on OSX - stage: test os: osx osx_image: xcode8.3 python: 3.6-dev - stage: documentation name: "Sphinx Build" python: "3.7" before_install: - travis_retry pip install -r doc/doc-requirements.txt script: # Build the docs with Sphinx # -a Write all files # -n nitpicky - python -m sphinx -an doc build - stage: linter name: "Linter Checks" python: "3.7" before_install: - travis_retry pip install -r requirements-lint.txt script: # ------------- # pylint checking: # Slowly enable all pylint warnings by adding addressed classes of # warnings to the .pylintrc-wip file to prevent them from being # re-introduced # check the entire main codebase - pylint --rcfile=.pylintrc-wip can/**.py # check setup.py - pylint --rcfile=.pylintrc *.py # check doc/conf.py and possible other scripts in there - pylint --rcfile=.pylintrc doc/**.py # check the scripts folder - pylint --rcfile=.pylintrc scripts/**.py # check the examples - pylint --rcfile=.pylintrc-wip examples/**.py # ------------- # mypy checking: - mypy --python-version=3.7 --ignore-missing-imports --no-implicit-optional can/bit_timing.py can/broadcastmanager.py can/bus.py can/interface.py can/interfaces/socketcan/**.py can/interfaces/virtual.py can/listener.py can/logger.py can/message.py can/notifier.py can/player.py can/thread_safe_bus.py can/typechecking.py can/util.py can/io/**.py scripts/**.py examples/**.py - stage: linter name: "Formatting Checks" python: "3.7" before_install: - travis_retry pip install -r requirements-lint.txt script: - black --check --verbose . - stage: deploy name: "PyPi Deployment" python: "3.7" deploy: provider: pypi user: hardbyte password: secure: oQ9XpEkcilkZgKp+rKvPb2J1GrZe2ZvtOq/IjzCpiA8NeWixl/ai3BkPrLbd8t1wNIFoGwx7IQ7zxWL79aPYeG6XrljEomv3g45NR6dkQewUH+dQFlnT75Rm96Ycxvme0w1+71vM4PqxIuzyXUrF2n7JjC0XCCxHdTuYmPGbxVO1fOsE5R5b9inAbpEUtJuWz5AIrDEZ0OgoQpLSC8fLwbymTThX3JZ5GBLpRScVvLazjIYfRkZxvCqQ4mp1UNTdoMzekxsvxOOcEW6+j3fQO+Q/8uvMksKP0RgT8HE69oeYOeVic4Q4wGqORw+ur4A56NvBqVKtizVLCzzEG9ZfoSDy7ryvGWGZykkh8HX0PFQAEykC3iYihHK8ZFz5bEqRMegTmuRYZwPsel61wVd5posxnQkGm0syIoJNKuuRc5sUK+E3GviYcT8NntdR+4WBrvpQAYa1ZHpVrfnQXyaDmGzOjwCRGPoIDJweEqGVmLycEC5aT8rX3/W9tie9iPnjmFJh4CwNMxDgVQRo80m6Gtlf/DQpA3mH39IvWGqd5fHdTPxYPs32EQSCsaYLJV5pM8xBNv6M2S/KriGnGZU0xT7MEr46da0LstKsK/U8O0yamjyugMvQoC3zQcKLrDzWFSBsT7/vG+AuV5SK8yzfEHugo7jkPQQ+NTw29xzk4dY= on: # Have travis deploy tagged commits to PyPi tags: true skip_cleanup: true