language: python

# Linux setup
dist: focal

cache:
  directories:
  - "$HOME/.cache/pip"

install:
  - if [[ "$TEST_SOCKETCAN" ]]; then sudo bash test/open_vcan.sh ; fi
  - travis_retry python setup.py install

script:
  - |
    # install tox
    travis_retry pip install tox
    # Run the tests
    tox -e travis

jobs:
  allow_failures:
    # Allow arm64 builds to fail
    - arch: arm64

  include:
    # Stages with the same name get run in parallel.
    # Jobs within a stage can also be named.

    # testing socketcan on Trusty & Python 3.6, since it is not available on Xenial
    - stage: test
      name: Socketcan
      os: linux
      arch: amd64
      dist: trusty
      python: "3.6"
      sudo: required
      env: TEST_SOCKETCAN=TRUE

    # arm64 builds
    - stage: test
      name: Linux arm64
      os: linux
      arch: arm64
      language: generic
      sudo: required
      addons:
        apt:
          update: true
      env: HOST_ARM64=TRUE
      before_install:
        - sudo apt install -y python3 python3-pip
        # Travis doesn't seem to provide Python binaries yet for this arch
        - sudo update-alternatives --install /usr/bin/python python $(which python3) 10
        - sudo update-alternatives --install /usr/bin/pip pip $(which pip3) 10
      # The below is the same as in the Socketcan job but with elevated privileges
      install:
        - if [[ "$TEST_SOCKETCAN" ]]; then sudo bash test/open_vcan.sh ; fi
        - travis_retry sudo python setup.py install
      script:
        - |
          # install tox
          travis_retry sudo pip install tox
          # Run the tests
          sudo tox -e travis

    - stage: documentation
      name: "Sphinx Build"
      python: "3.9"
      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: deploy
      name: "PyPi Deployment"
      python: "3.9"
      deploy:
        provider: pypi
        distributions: "sdist bdist_wheel"
        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
