From 1bb3fc187b3285b250aec0a62e3ec99a2751f69f Mon Sep 17 00:00:00 2001 From: James Adams Date: Sat, 1 Feb 2020 10:41:55 -0500 Subject: [PATCH] updated the CircleCI config file to use multiple Python versions #53 --- .circleci/config.yml | 148 +++++++++++++++++++++++++++++-------------- 1 file changed, 100 insertions(+), 48 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 8bf784a..82cda37 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -1,54 +1,106 @@ -# 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_3.7: - 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" }} + # 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 . - 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 + pip install codecov + pip install coverage + pip install opencv-python + pip install pytest + pip install scikit-image + coverage run -m pytest tests + codecov - - run: - name: install dependencies - command: | - python3 -m venv venv - . venv/bin/activate - pip install -e . + # 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 - pip install codecov - pip install coverage - pip install opencv-python - pip install pytest - pip install scikit-image - coverage run -m pytest tests - codecov -# 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