diff --git a/.circleci/config.backup b/.circleci/config.backup new file mode 100644 index 000000000..029c1f06d --- /dev/null +++ b/.circleci/config.backup @@ -0,0 +1,59 @@ +# Python CircleCI 2.0 configuration file +# +# Check https://circleci.com/docs/2.0/language-python/ for more details +# +version: 2 +jobs: + build: + docker: + # specify the version you desire here + # use `-browsers` prefix for selenium tests, e.g. `3.6.1-browsers` + - image: circleci/python:3.6.4 + + # Specify service dependencies here if necessary + # CircleCI maintains a library of pre-built images + # documented at https://circleci.com/docs/2.0/circleci-images/ + # - image: circleci/postgres:9.4 + + working_directory: ~/repo + + steps: + - checkout + - run: sudo chown -R circleci:circleci /usr/local/bin + - run: sudo chown -R circleci:circleci /usr/local/lib/python3.6/site-packages + + # Download and cache dependencies + - restore_cache: + keys: + - v1-dependencies-{{ checksum "requirements_ci.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 -r requirements_ci.txt + pip install pytest + pip install pytest-cov + + - save_cache: + paths: + - ./venv + key: v1-dependencies-{{ checksum "requirements_ci.txt" }} + + # run tests! + # this example uses Django's built-in test-runner + # other common Python testing frameworks include pytest and nose + # https://pytest.org + # https://nose.readthedocs.io + - run: + name: run tests + command: | + . venv/bin/activate + pytest + + - store_artifacts: + path: test-reports + destination: test-reports diff --git a/.circleci/config.yml b/.circleci/config.yml index ea5465004..4ebc56732 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -1,56 +1,49 @@ # Python CircleCI 2.0 configuration file # # Check https://circleci.com/docs/2.0/language-python/ for more details -# +# Adapted from https://github.com/NeuralEnsemble/python-neo version: 2 +workflows: + version: 2 + test: + jobs: + - test-3.6 + - test-2.7 jobs: - build: + test-3.6: docker: - # specify the version you desire here - # use `-browsers` prefix for selenium tests, e.g. `3.6.1-browsers` -# - image: circleci/python:3.6.4 - - image: circleci/python:2.7.15 - - # Specify service dependencies here if necessary - # CircleCI maintains a library of pre-built images - # documented at https://circleci.com/docs/2.0/circleci-images/ - # - image: circleci/postgres:9.4 + - image: circleci/python:3.6.4 working_directory: ~/repo steps: - checkout - run: sudo chown -R circleci:circleci /usr/local/bin -# - run: sudo chown -R circleci:circleci /usr/local/lib/python3.6/site-packages - - run: sudo chown -R circleci:circleci /usr/local/lib/python2.7/site-packages # Download and cache dependencies - restore_cache: keys: - - v1-dependencies-{{ checksum "requirements_ci.txt" }} + - v1-py3-dependencies-{{ checksum "requirements_ci.txt" }} # fallback to using the latest cache if no exact match is found - - v1-dependencies- + - v1-py3-dependencies- - run: name: install dependencies command: | -# python3 -m venv venv - python -m venv venv + python3 -m venv venv . venv/bin/activate pip install -r requirements_ci.txt pip install pytest pip install pytest-cov + - save_cache: paths: - ./venv - key: v1-dependencies-{{ checksum "requirements_ci.txt" }} + key: v1-py3-dependencies-{{ checksum "requirements.txt" }} + # run tests! - # this example uses Django's built-in test-runner - # other common Python testing frameworks include pytest and nose - # https://pytest.org - # https://nose.readthedocs.io - run: name: run tests command: | @@ -60,3 +53,47 @@ jobs: - store_artifacts: path: test-reports destination: test-reports + + test-2.7: + docker: + - image: circleci/python:2.7-stretch + + working_directory: ~/repo + + steps: + - checkout + - run: sudo chown -R circleci:circleci /usr/local/bin + + # Download and cache dependencies + - restore_cache: + keys: + - v1-py2-dependencies-{{ checksum "requirements_ci.txt" }} + # fallback to using the latest cache if no exact match is found + - v1-py2-dependencies- + + - run: + name: install dependencies + command: | + virtualenv venv2 + . venv2/bin/activate + pip install -r requirements_ci.txt + pip install pytest + pip install pytest-cov + pip install mock # only needed for Python 2 + + - save_cache: + paths: + - ./venv2 + key: v1-py2-dependencies-{{ checksum "requirements_ci.txt" }} + + + # run tests! + - run: + name: run tests + command: | + . venv2/bin/activate + pytest + + - store_artifacts: + path: test-reports + destination: test-reports