os: linux
dist: xenial
language: python
jobs:
  include:
  - python: 3.8
    env: TOXENV=coveralls DEPENDENCY_INJECTOR_DEBUG_MODE=1
    install:
      - pip install tox
      - pip install cython
      - make cythonize
    script: tox
  - python: 3.6
    env: TOXENV=pylint
    install: pip install tox
    script: tox
  - python: 3.6
    env: TOXENV=flake8
    install: pip install tox
    script: tox
  - python: 3.6
    env: TOXENV=pydocstyle
    install: pip install tox
    script: tox
  - python: 2.7
    env: TOXENV=py27
    install: pip install tox
    script: tox
  - python: 3.4
    env: TOXENV=py34
    install: pip install tox
    script: tox
  - python: 3.5
    env: TOXENV=py35
    install: pip install tox
    script: tox
  - python: 3.6
    env: TOXENV=py36
    install: pip install tox
    script: tox
  - python: 3.7
    env: TOXENV=py37
    install: pip install tox
    script: tox
  - python: 3.8
    env: TOXENV=py38
    install: pip install tox
    script: tox
  - python: pypy
    env: TOXENV=pypy
    install: pip install tox
    script: tox
  - python: pypy3
    env: TOXENV=pypy3
    install: pip install tox
    script: tox
  - python: 3.8
    if: tag IS present
    env: TWINE_USERNAME=__token__
    install: pip install pip --upgrade
    script: python setup.py sdist
    after_success:
      - python3 -m pip install twine
      - python3 -m twine upload dist/*
  - services: docker
    if: tag IS present
    env: TWINE_USERNAME=__token__
    install: python3 -m pip install cibuildwheel==1.5.1
    script: python3 -m cibuildwheel --output-dir wheelhouse
    after_success:
      - python3 -m pip install twine
      - python3 -m twine upload wheelhouse/*.whl
  - os: osx
    if: tag IS present
    language: shell
    env: TWINE_USERNAME=__token__
    install: python3 -m pip install cibuildwheel==1.5.1
    script: python3 -m cibuildwheel --output-dir wheelhouse
    after_success:
      - python3 -m pip install twine
      - python3 -m twine upload wheelhouse/*.whl
  - os: windows
    if: tag IS present
    language: shell
    env: TWINE_USERNAME=__token__
    before_install:
      - choco install python --version 3.8.0
      - export PATH="/c/Python38:/c/Python38/Scripts:$PATH"
    install: python -m pip install cibuildwheel==1.5.1
    script: python -m cibuildwheel --output-dir wheelhouse
    after_success:
      - python -m pip install twine
      - python -m twine upload wheelhouse/*.whl
notifications:
  slack:
    rooms:
      secure: CdWDgKnfYW7vvvoH3nS3yg3TcNZiYLRUyEp6ukQ4rQiiuR4+ltuvyGyFJWgP8r7VVJ9yHkB0jebCKWLUMsAEt1my33B6eMDEVefovpkdh2eJjGswmm80brt0EJULpgwPOtB1U47Mwca8L5jDW4KSv9RypUFRgn8eHDoWw6LKf5g=
