Skip to content

Commit

Permalink
Use tox and pyenv to specify different python environments.
Browse files Browse the repository at this point in the history
  • Loading branch information
Kentzo committed Nov 7, 2019
1 parent 326e09e commit a076827
Show file tree
Hide file tree
Showing 5 changed files with 189 additions and 220 deletions.
36 changes: 20 additions & 16 deletions .appveyor.yml
Original file line number Diff line number Diff line change
@@ -1,26 +1,30 @@
clone_depth: 1

image:
- Visual Studio 2019

environment:
PYTHON: "C:\\Python37-x64"

matrix:
# Python 2.6 builds do not work because bundled OpenSSL does not support TLS.
# - PYTHON: "C:\\Python26"
# - PYTHON: "C:\\Python26-x64"
# Python 2.x builds do not work, because readlink for Windows is not available before Python 3.3
# - PYTHON: "C:\\Python27"
# - PYTHON: "C:\\Python27-x64"
- PYTHON: "C:\\Python34"
- PYTHON: "C:\\Python34-x64"
- PYTHON: "C:\\Python35"
- PYTHON: "C:\\Python35-x64"
- PYTHON: "C:\\Python36"
- PYTHON: "C:\\Python36-x64"
- PYTHON: "C:\\Python37"
- PYTHON: "C:\\Python37-x64"
# Python 2.x builds do not work because implementation of os.readlink did not support Windows till 3.2
- TOXENV: "py34"
- TOXENV: "py35"
- TOXENV: "py36"
- TOXENV: "py37"

matrix:
fast_finish: true

build: off

install:
- "%PYTHON%\\python.exe -m pip install --upgrade pip"
- "%PYTHON%\\python.exe -m pip install --upgrade wheel>=0.30.0 setuptools>=36.6.0"
- "%PYTHON%\\python.exe -m pip install --upgrade tox==3.14.0 codecov==2.0.15 tox-venv==0.4.0"

test_script:
- "%PYTHON%\\python.exe -m pip install -r requirements.txt"
- "%PYTHON%\\python.exe setup.py test"
- "%PYTHON%\\python.exe -m tox -vv -- --cov-report=xml"

after_test:
- "%PYTHON%\\python.exe -m codecov --required --file %APPVEYOR_BUILD_FOLDER%\\coverage.xml"
308 changes: 118 additions & 190 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,204 +1,132 @@
git:
depth: 1

before_cache:
- if [ "$TRAVIS_OS_NAME" = "osx" ]; then brew cleanup; fi

cache:
directories:
- $HOME/.cache/pyenv
- /opt/pyenv/versions/$PYENV_VERSION
- $HOME/pyenv/versions/$PYENV_VERSION
- $HOME/Library/Caches/Homebrew
pip: true

env:
global:
- PIP_URL="https://bootstrap.pypa.io/get-pip.py"
- PIP="python -m pip"
- PYTHON_BUILD_CACHE_PATH=$HOME/.cache/pyenv
- HOMEBREW_NO_INSTALL_CLEANUP=1

matrix:
jobs:
fast_finish: true
include:
- os: osx
language: generic
env:
- NAME="Python 2.6"
- PIP_URL="https://bootstrap.pypa.io/2.6/get-pip.py"
- PIP=pip
before_install:
- brew update
- brew upgrade pyenv || brew install pyenv || true
- pyenv install 2.6.9
- pyenv local 2.6.9
- eval "$(pyenv init -)"
- pip install virtualenv
- python2.6 -m virtualenv env
- pyenv local --unset
- source env/bin/activate
- python -c "import sys; print(sys.platform)"
- os: osx
language: generic
env: NAME="Python 2 Homebrew"
before_install:
- brew update
- brew upgrade python2 || true
- python2.7 -m pip install virtualenv
- python2.7 -m virtualenv env
- source env/bin/activate
- os: osx
language: generic
env: NAME="Python pypy Homebrew"
before_install:
- brew update
- brew upgrade pypy || brew install pypy || true
- pypy -m pip install virtualenv
- pypy -m virtualenv env
- source env/bin/activate
- os: osx
language: generic
env: NAME="Python 3.4"
before_install:
- brew update
- brew upgrade pyenv || brew install pyenv || true
- pyenv install 3.4.9
- pyenv local 3.4.9
- eval "$(pyenv init -)"
- python3.4 -m venv env
- pyenv local --unset
- source env/bin/activate
- os: osx
language: generic
env: NAME="Python 3.5"
before_install:
- brew update
- brew upgrade pyenv || brew install pyenv || true
- pyenv install 3.5.9
- pyenv local 3.5.9
- eval "$(pyenv init -)"
- python3.5 -m venv env
- pyenv local --unset
- source env/bin/activate
- os: osx
language: generic
env: NAME="Python 3.6"
before_install:
- brew update
- brew upgrade pyenv || brew install pyenv || true
- pyenv install 3.6.9
- pyenv local 3.6.9
- eval "$(pyenv init -)"
- python3.6 -m venv env
- pyenv local --unset
- source env/bin/activate
- os: osx
language: generic
env: NAME="Python 3.7"
before_install:
- brew update
- brew upgrade pyenv || brew install pyenv || true
- pyenv install 3.7.5
- pyenv local 3.7.5
- eval "$(pyenv init -)"
- python3.6 -m venv env
- pyenv local --unset
- source env/bin/activate
- os: osx
language: generic
env: NAME="Python 3 Homebrew"
before_install:
- brew update
- brew upgrade python || true
- python3.7 -m venv env
- source env/bin/activate
- os: osx
language: generic
env: NAME="Python pypy3 Homebrew"
before_install:
- brew update
- brew upgrade pypy3 || brew install pypy3 || true
- pypy3 -m venv env
- source env/bin/activate
- os: osx
language: generic
env: NAME="Python HEAD"
before_install:
- brew update
- brew unlink python
- brew install python --HEAD
- python3 -m venv env
- source env/bin/activate
- os: linux
env:
- PIP_URL="https://bootstrap.pypa.io/2.6/get-pip.py"
- PIP=pip
language: python
python: 2.6
dist: trusty
- os: linux
language: python
python: 2.7
- os: linux
language: python
python: pypy
- os: linux
language: python
python: 3.4
- os: linux
language: python
python: 3.5
- os: linux
language: python
python: 3.6
- os: linux
language: python
python: 3.7
sudo: true
- os: linux
language: python
python: 3.8
sudo: true
- os: linux
language: python
python: 3.6-dev
- os: linux
language: python
python: 3.7-dev
- os: linux
language: python
python: 3.8-dev
- os: linux
language: python
python: nightly
- os: linux
language: python
python: pypy3
- &linux
os: linux
language: python
env: PYENV_VERSION=2.6.9 TOXENV=py26
- <<: *linux
env: PYENV_VERSION=2.7.17 TOXENV=py27
- <<: *linux
env: PYENV_VERSION=2.7-dev TOXENV=py27
- <<: *linux
env: PYENV_VERSION=3.4.10 TOXENV=py34
- <<: *linux
env: PYENV_VERSION=3.5.8 TOXENV=py35
- <<: *linux
env: PYENV_VERSION=3.5-dev TOXENV=py35
- <<: *linux
env: PYENV_VERSION=3.6.9 TOXENV=py36
- <<: *linux
env: PYENV_VERSION=3.6-dev TOXENV=py36
- <<: *linux
env: PYENV_VERSION=3.7.5 TOXENV=py37
- <<: *linux
env: PYENV_VERSION=3.7-dev TOXENV=py37
- <<: *linux
env: PYENV_VERSION=3.8.0 TOXENV=py38
- <<: *linux
env: PYENV_VERSION=3.8-dev TOXENV=py38
- <<: *linux
env: PYENV_VERSION=3.9-dev TOXENV=py39
- <<: *linux
env: PYENV_VERSION=pypy2.7-7.2.0 TOXENV=pypy
- <<: *linux
env: PYENV_VERSION=pypy3.6-7.2.0 TOXENV=pypy3
- &osx
os: osx
language: generic
env: PYENV_VERSION=2.6.9 TOXENV=py26
- <<: *osx
env: PYENV_VERSION=2.7.17 TOXENV=py27
- <<: *osx
env: PYENV_VERSION=2.7-dev TOXENV=py27
- <<: *osx
env: PYENV_VERSION=3.4.10 TOXENV=py34
- <<: *osx
env: PYENV_VERSION=3.5.8 TOXENV=py35
- <<: *osx
env: PYENV_VERSION=3.5-dev TOXENV=py35
- <<: *osx
env: PYENV_VERSION=3.6.9 TOXENV=py36
- <<: *osx
env: PYENV_VERSION=3.6-dev TOXENV=py36
- <<: *osx
env: PYENV_VERSION=3.7.5 TOXENV=py37
- <<: *osx
env: PYENV_VERSION=3.7-dev TOXENV=py37
- <<: *osx
env: PYENV_VERSION=3.8.0 TOXENV=py38
- <<: *osx
env: PYENV_VERSION=3.8-dev TOXENV=py38
- <<: *osx
env: PYENV_VERSION=3.9-dev TOXENV=py39
- <<: *osx
env: PYENV_VERSION=pypy2.7-7.2.0 TOXENV=pypy
- <<: *osx
env: PYENV_VERSION=pypy3.6-7.2.0 TOXENV=pypy3
allow_failures:
- os: osx
env: NAME="Python HEAD"
- os: linux
python: 3.6-dev
- os: linux
python: 3.7-dev
- os: linux
python: 3.8-dev
- os: linux
python: nightly
- env: PYENV_VERSION=2.7-dev TOXENV=py27
- env: PYENV_VERSION=3.5-dev TOXENV=py35
- env: PYENV_VERSION=3.6-dev TOXENV=py36
- env: PYENV_VERSION=3.7-dev TOXENV=py37
- env: PYENV_VERSION=3.8-dev TOXENV=py38
- env: PYENV_VERSION=3.9-dev TOXENV=py39

before_install:
- mkdir -p ${HOME}/.cache/pyenv
- if [ "$TRAVIS_OS_NAME" = "osx" ]; then brew update && (brew upgrade pyenv || true); fi
- if [ "$TRAVIS_OS_NAME" = "linux" ]; then git -C "$(pyenv root)" fetch && git -C "$(pyenv root)" checkout master && git -C "$(pyenv root)" pull; fi

install:
- curl ${PIP_URL} | python
- ${PIP} install -r requirements.txt
- python -m pip install tox==3.14.0 codecov==2.0.15 tox-pyenv==1.1.0 virtualenv==15.2.0
- pyenv install $(pyenv exec python --version >/dev/null 2>&1 && echo "--skip-existing" || echo "--force") "${PYENV_VERSION}"

script:
- make test
- python -m tox -vv -- --cov-report=xml

after_success:
- python -m codecov
- python setup.py sdist bdist_wheel
- python -m codecov --required

before_deploy:
- python setup.py sdist bdist_wheel

deploy:
- provider: pypi
user: Ilya.Kulakov
password:
secure: "fDYi/HJvYyqUggKmN/Dc6YewUsBAzHWBdTYMpDfHETeOIvv2G268atnIwcoWav63fwPUpagwOlzQhRklqeLRmjEzr4M+wzFsAQVAnj6a7ChLPWPmgZlClFRpm6leWZjzGD+1FPnH/vvwTHlDi7j+1zgfh4WEellnw3hU+Lzjx+o="
distributions: "sdist bdist_wheel"
on:
tags: true
branch: master
python: 3.6
- provider: releases
skip_cleanup: true
api_key:
secure: "QHn7vzWo7rbgemP37qdNU4h+q7Xb2CQ7HxPFfa7yTsxFd8V4+sQLVrnaQtzYTM8dJWvRgi8PVHVGl2VGnQAiRM4Nd/NE/3HL9aHQIfWRtZ6XHfNVQ55bxJzLfZZy2M+32b8W268ELj3ty4C3Mo7TuOTv4svQoRDrLzGozJCpu+w="
file_glob: true
file: dist/*
on:
tags: true
branch: master
python: 3.6
- provider: pypi
user: Ilya.Kulakov
password:
secure: "fDYi/HJvYyqUggKmN/Dc6YewUsBAzHWBdTYMpDfHETeOIvv2G268atnIwcoWav63fwPUpagwOlzQhRklqeLRmjEzr4M+wzFsAQVAnj6a7ChLPWPmgZlClFRpm6leWZjzGD+1FPnH/vvwTHlDi7j+1zgfh4WEellnw3hU+Lzjx+o="
distributions: "sdist bdist_wheel"
on:
tags: true
branch: master
python: 3.6
- provider: releases
skip_cleanup: true
api_key:
secure: "QHn7vzWo7rbgemP37qdNU4h+q7Xb2CQ7HxPFfa7yTsxFd8V4+sQLVrnaQtzYTM8dJWvRgi8PVHVGl2VGnQAiRM4Nd/NE/3HL9aHQIfWRtZ6XHfNVQ55bxJzLfZZy2M+32b8W268ELj3ty4C3Mo7TuOTv4svQoRDrLzGozJCpu+w="
file_glob: true
file: dist/*
on:
tags: true
branch: master
python: 3.6
16 changes: 10 additions & 6 deletions requirements.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@
pytest==3.7.1; python_version > "2.6"
pytest==3.2.5; python_version <= "2.6"
pytest-cov==2.5.1
pytest-mock; python_version > "2.6"
codecov==2.0.15
pycodestyle==2.4.0
pycodestyle==2.4.0; python_version < "2.7"
pycodestyle==2.5.0; python_version >= "2.7"
pytest==3.2.5; python_version < "2.7"
pytest==4.6.6; python_version >= "2.7" and python_version < "3.5"
pytest==5.2.2; python_version >= "3.5"
pytest-cov==2.5.1; python_version < "2.7"
pytest-cov==2.8.1; python_version >= "2.7"
pytest-mock==1.6.3; python_version < "2.7"
pytest-mock==1.11.2; python_version >= "2.7"
setuptools==36.8.0; python_version < "2.7"
Loading

0 comments on commit a076827

Please sign in to comment.