Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Updates for testing multiple Python versions on CircleCI #131

Merged
merged 9 commits into from
Feb 1, 2020
143 changes: 99 additions & 44 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
@@ -1,50 +1,105 @@
# Python CircleCI 2.0 configuration file
#
# Check https://circleci.com/docs/2.0/language-python/ for more details
#
version: 2
workflows:
version: 2
test:
jobs:
- test-3.7
- test-3.6
jobs:
build:
docker:
# specify the version you desire here
# CircleCI maintains a library of pre-built images
# documented at https://circleci.com/docs/2.0/circleci-images/
- image: circleci/python:3.7

working_directory: ~/repo
test-3.7: &test-template
docker:
- image: circleci/python:3.7
working_directory: ~/repo
steps:
- checkout
- restore_cache:
keys:
- v1-dependencies-{{ checksum "requirements.txt" }}
- v1-dependencies-
- run:
name: install dependencies
command: |
python3 -m venv venv
. venv/bin/activate
pip install -e .
pip install codecov
pip install coverage
pip install opencv-python
pip install pytest
pip install scikit-image

steps:
- checkout
- save_cache:
paths:
- ./venv
key: v1-dependencies-{{ checksum "requirements.txt" }}

# Download and cache dependencies
- restore_cache:
keys:
- v1-dependencies-{{ checksum "requirements.txt" }}
# fallback to using the latest cache if no exact match is found
- v1-dependencies-
- run:
name: run tests
command: |
. venv/bin/activate
coverage run -m pytest tests
codecov

- run:
name: install dependencies
command: |
python3 -m venv venv
. venv/bin/activate
pip install -e .
pip install codecov
pip install coverage
pip install tox
# store artifacts (for example logs, binaries, etc)
# to be available in the web app or through the API
- store_artifacts:
path: test-reports

- save_cache:
paths:
- ./venv
key: v1-dependencies-{{ checksum "requirements.txt" }}
test-3.6:
<<: *test-template
docker:
- image: circleci/python:3.6

# run tests with tox
- run:
name: run tests
command: |
. venv/bin/activate
tox

# store artifacts (for example logs, binaries, etc)
# to be available in the web app or through the API
- store_artifacts:
path: test-reports
#
## Python CircleCI 2.0 configuration file
##
## Check https://circleci.com/docs/2.0/language-python/ for more details
##
#jobs:
# build:
# docker:
# # specify the version you desire here
# # CircleCI maintains a library of pre-built images
# # documented at https://circleci.com/docs/2.0/circleci-images/
# - image: circleci/python:3.7
#
# working_directory: ~/repo
#
# steps:
# - checkout
#
# # Download and cache dependencies
# - restore_cache:
# keys:
# - v1-dependencies-{{ checksum "requirements.txt" }}
# # fallback to using the latest cache if no exact match is found
# - v1-dependencies-
#
# - run:
# name: install dependencies
# command: |
# python3 -m venv venv
# . venv/bin/activate
# pip install -e .
#
# - save_cache:
# paths:
# - ./venv
# key: v1-dependencies-{{ checksum "requirements.txt" }}
#
# - run:
# name: run tests
# command: |
# . venv/bin/activate
# pip install codecov
# pip install coverage
# pip install opencv-python
# pip install pytest
# pip install scikit-image
# coverage run -m pytest tests
# codecov
#
# # store artifacts (for example logs, binaries, etc)
# # to be available in the web app or through the API
# - store_artifacts:
# path: test-reports
3 changes: 2 additions & 1 deletion setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,12 +15,13 @@
long_description=long_description,
long_description_content_type="text/markdown",
url="https://github.com/monocongo/cvdata",
python_requires=">=3.7",
python_requires=">=3.6,<3.8",
provides=[
"cvdata",
],
classifiers=[
"License :: OSI Approved :: MIT License",
"Programming Language :: Python :: 3.6",
"Programming Language :: Python :: 3.7",
"Operating System :: OS Independent",
],
Expand Down
2 changes: 1 addition & 1 deletion tox.ini
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
[tox]
envlist = py37
envlist = py36,py37

# Define the minimal tox version required to run; if the host
# tox is less than this the tool with create an environment and
Expand Down