version: 2.0 # heavily inspired by https://raw.githubusercontent.com/pinax/pinax-wiki/6bd2a99ab6f702e300d708532a6d1d9aa638b9f8/.circleci/config.yml common: &common working_directory: ~/repo steps: - checkout - run: name: merge pull request base command: ./.circleci/merge_pr.sh - run: name: merge pull request base (2nd try) command: ./.circleci/merge_pr.sh when: on_fail - run: name: merge pull request base (3nd try) command: ./.circleci/merge_pr.sh when: on_fail - restore_cache: keys: - cache-{{ .Environment.CIRCLE_JOB }}-{{ checksum "setup.py" }}-{{ checksum "tox.ini" }} - run: name: install dependencies command: pip install --user tox - run: name: run tox command: ~/.local/bin/tox -r - save_cache: paths: - .hypothesis - .tox - ~/.cache/pip - ~/.local - ./eggs key: cache-{{ .Environment.CIRCLE_JOB }}-{{ checksum "setup.py" }}-{{ checksum "tox.ini" }} jobs: docs: <<: *common docker: - image: circleci/python:3.6 environment: TOXENV: docs lint: <<: *common docker: - image: circleci/python:3.6 environment: TOXENV: lint py36-core: <<: *common docker: - image: circleci/python:3.6 environment: TOXENV: py36-core py37-core: <<: *common docker: - image: circleci/python:3.7 environment: TOXENV: py37-core pypy3-core: <<: *common docker: - image: pypy environment: TOXENV: pypy3-core workflows: version: 2 test: jobs: - docs - lint - py36-core - py37-core - pypy3-core