diff --git a/.circleci/config.yml b/.circleci/config.yml index 55dfb96b1e..7273c238c1 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -98,6 +98,24 @@ jobs: command: | .circleci/coverage.sh + test-py37: + docker: + - image: flexget/cci-python:3.7 + environment: + - VCR_RECORD_MODE=none + steps: + - checkout + - restore_cache: + keys: + - py3.7-deps-{{ checksum "requirements.txt" }}{{ checksum "dev-requirements.txt" }}{{ checksum "dev-requirements-extras.txt" }} + - py3.7-deps- # fallback to using the latest cache if no exact match is found + - run: *install_deps + - save_cache: + paths: + - ./venv + key: py3.7-deps-{{ checksum "requirements.txt" }}{{ checksum "dev-requirements.txt" }}{{ checksum "dev-requirements-extras.txt" }} + - run: *run_tests + deploy: docker: - image: flexget/cci-python:3.5 @@ -133,6 +151,7 @@ workflows: - "test-py34" - "test-py35" - "test-py36" + - "test-py37" auto-build-test-and-deploy: triggers: @@ -147,12 +166,14 @@ workflows: - "test-py34" - "test-py35" - "test-py36" + - "test-py37" - deploy: requires: - "test-py27" - "test-py34" - "test-py35" - "test-py36" + - "test-py37" notify: webhooks: diff --git a/.circleci/images/python27/Dockerfile b/.circleci/images/python27/Dockerfile index a49fd26ba4..25e26a09cd 100644 --- a/.circleci/images/python27/Dockerfile +++ b/.circleci/images/python27/Dockerfile @@ -1,7 +1,7 @@ FROM circleci/python:2.7 # Install extra repos -RUN sudo sed -i 's/debian jessie main$/debian jessie main contrib non-free/' /etc/apt/sources.list +RUN sudo sed -i 's/debian stretch main$/debian stretch main contrib non-free/' /etc/apt/sources.list # Install unrar used by some flexget tests RUN sudo apt-get update; sudo apt-get install -qy unrar diff --git a/.circleci/images/python33/Dockerfile b/.circleci/images/python33/Dockerfile index 019f6c611b..d3b4585e4f 100644 --- a/.circleci/images/python33/Dockerfile +++ b/.circleci/images/python33/Dockerfile @@ -1,7 +1,7 @@ FROM circleci/python:3.3 # Install extra repos -RUN sudo sed -i 's/debian jessie main$/debian jessie main contrib non-free/' /etc/apt/sources.list +RUN sudo sed -i 's/debian stretch main$/debian stretch main contrib non-free/' /etc/apt/sources.list # Install unrar used by some flexget tests RUN sudo apt-get update; sudo apt-get install -qy unrar diff --git a/.circleci/images/python34/Dockerfile b/.circleci/images/python34/Dockerfile index 0bfe67d02e..6bdc9f9fd5 100644 --- a/.circleci/images/python34/Dockerfile +++ b/.circleci/images/python34/Dockerfile @@ -1,7 +1,7 @@ FROM circleci/python:3.4 # Install extra repos -RUN sudo sed -i 's/debian jessie main$/debian jessie main contrib non-free/' /etc/apt/sources.list +RUN sudo sed -i 's/debian stretch main$/debian stretch main contrib non-free/' /etc/apt/sources.list # Install unrar used by some flexget tests RUN sudo apt-get update; sudo apt-get install -qy unrar diff --git a/.circleci/images/python35/Dockerfile b/.circleci/images/python35/Dockerfile index 0d431c9096..1362f3cd6b 100644 --- a/.circleci/images/python35/Dockerfile +++ b/.circleci/images/python35/Dockerfile @@ -1,7 +1,7 @@ FROM circleci/python:3.5 # Install extra repos -RUN sudo sed -i 's/debian jessie main$/debian jessie main contrib non-free/' /etc/apt/sources.list +RUN sudo sed -i 's/debian stretch main$/debian stretch main contrib non-free/' /etc/apt/sources.list # Install unrar used by some flexget tests RUN sudo apt-get update; sudo apt-get install -qy unrar diff --git a/.circleci/images/python36/Dockerfile b/.circleci/images/python36/Dockerfile index 54574e92a1..488a892ad0 100644 --- a/.circleci/images/python36/Dockerfile +++ b/.circleci/images/python36/Dockerfile @@ -1,7 +1,7 @@ FROM circleci/python:3.6 # Install extra repos -RUN sudo sed -i 's/debian jessie main$/debian jessie main contrib non-free/' /etc/apt/sources.list +RUN sudo sed -i 's/debian stretch main$/debian stretch main contrib non-free/' /etc/apt/sources.list # Install unrar used by some flexget tests RUN sudo apt-get update; sudo apt-get install -qy unrar diff --git a/.circleci/images/python37/Dockerfile b/.circleci/images/python37/Dockerfile new file mode 100644 index 0000000000..488198d6d2 --- /dev/null +++ b/.circleci/images/python37/Dockerfile @@ -0,0 +1,10 @@ +FROM circleci/python:3.7 + +# Install extra repos +RUN sudo sed -i 's/debian stretch main$/debian stretch main contrib non-free/' /etc/apt/sources.list + +# Install unrar used by some flexget tests +RUN sudo apt-get update; sudo apt-get install -qy unrar + +# Use virtualenv as we test on py2.7, keeps it consistant +RUN sudo pip install virtualenv diff --git a/dev-requirements.txt b/dev-requirements.txt index 2531d66a09..1255546556 100644 --- a/dev-requirements.txt +++ b/dev-requirements.txt @@ -14,5 +14,5 @@ pytest-runner pytest-cov==2.5.1 gitpython==2.1.5 codacy-coverage>=1.2.18 -pip-tools==1.9.0 +pip-tools>=2.0.1 twine==1.11.0 diff --git a/requirements.in b/requirements.in index d0474c4c30..1d86c32589 100644 --- a/requirements.in +++ b/requirements.in @@ -7,7 +7,7 @@ html5lib>=0.11 PyRSS2Gen pynzb #PY3 progressbar -rpyc==3.3.0 +rpyc>=4.0 jinja2 # There is a bug in requests 2.4.0 where it leaks urllib3 exceptions requests~=2.16.3 diff --git a/requirements.txt b/requirements.txt index f71117d879..1234dab8f6 100644 --- a/requirements.txt +++ b/requirements.txt @@ -38,10 +38,10 @@ pyparsing==2.2.0 pyrss2gen==1.1 python-dateutil==2.6.1 pytz==2017.2 # via apscheduler, flask-restful, flask-restplus, tempora, tzlocal -pyyaml==3.12 +pyyaml==3.13 rebulk==0.9.0 requests==2.16.5 -rpyc==3.3.0 +rpyc==4.0.2 six==1.10.0 # via apscheduler, cheroot, cherrypy, flask-cors, flask-restful, flask-restplus, html5lib, python-dateutil, rebulk, tempora sqlalchemy==1.2.6 tempora==1.8 # via portend diff --git a/setup.py b/setup.py index 86e8093d37..558a19b454 100644 --- a/setup.py +++ b/setup.py @@ -61,6 +61,7 @@ def load_requirements(filename): "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", + "Programming Language :: Python :: 3.7", "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: PyPy", ]