language: python
stages:
  - name: test
  - name: deploy
    if: tag is present

cache: pip
before_script:
  - curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > ./cc-test-reporter
  - chmod +x ./cc-test-reporter
  - ./cc-test-reporter before-build
  - pip install -U Cython satella snakehouse nose2 coverage
  - pip install -r requirements.txt
  - python setup.py build_ext --inplace
jobs:
  include:
    - stage: test
      python: "3.5"
      script:
        - bash tests/test.sh
      after_script:
        - coverage xml
        - ./cc-test-reporter after-build -t coverage.py --exit-code $TRAVIS_TEST_RESULT
    - stage: test
      python: "3.8"
      script:
        - bash tests/test.sh
      after_script:
        - coverage xml
        - ./cc-test-reporter after-build -t coverage.py --exit-code $TRAVIS_TEST_RESULT
    - stage: test
      python: "3.9"
      script:
        - bash tests/test.sh
      after_script:
        - coverage xml
        - ./cc-test-reporter after-build -t coverage.py --exit-code $TRAVIS_TEST_RESULT
    - stage: deploy
      python: "3.8"
      before_script:
        - sudo apt-get update
        - sudo apt-get install -y patchelf
        - pip install wheel twine doctor-wheel auditwheel snakehouse satella
      script:
        - RELEASE=1 python setup.py bdist_wheel sdist
        - cd dist
        - doctor-wheel *.whl
        - auditwheel repair --plat manylinux2014_x86_64 *.whl
        - twine upload -u $PYPI_USER -p $PYPI_PWD wheelhouse/*.whl *.gz
    - stage: deploy
      python: "3.9"
      before_script:
        - sudo apt-get update
        - sudo apt-get install -y patchelf
        - pip install wheel twine doctor-wheel auditwheel snakehouse satella
      script:
        - RELEASE=1 python setup.py bdist_wheel
        - cd dist
        - doctor-wheel *.whl
        - auditwheel repair --plat manylinux2014_x86_64 *.whl
        - twine upload -u $PYPI_USER -p $PYPI_PWD wheelhouse/*.whl



