.circleci/config.yml
version: 2.0
py27default: &py27default
docker:
- image: circleci/python:2.7
steps:
- setup_remote_docker:
docker_layer_caching: true
- checkout
- restore_cache:
keys: py27-
- run: docker load -i caches/py27.tar || true
- run: docker run -e COVERALLS_REPO_TOKEN py27 tox -e $CIRCLE_STAGE
py34default: &py34default
docker:
- image: circleci/python:3.4
steps:
- setup_remote_docker:
docker_layer_caching: true
- checkout
- restore_cache:
keys: py34-
- run: docker load -i caches/py34.tar || true
- run: docker run -e COVERALLS_REPO_TOKEN py34 tox -e $CIRCLE_STAGE
py35default: &py35default
docker:
- image: circleci/python:3.5
steps:
- setup_remote_docker:
docker_layer_caching: true
- checkout
- restore_cache:
keys: py35-
- run: docker load -i caches/py35.tar || true
- run: docker run -e COVERALLS_REPO_TOKEN py35 tox -e $CIRCLE_STAGE
py35_requires: &py35_requires
requires:
- py35_base
py34_requires: &py34_requires
requires:
- py34_base
py27_requires: &py27_requires
requires:
- py27_base
jobs:
py27_base:
docker:
- image: circleci/python:2.7
steps:
- checkout
- setup_remote_docker:
docker_layer_caching: true
- run: docker build -f .circleci/Dockerfile --build-arg PYTHON_VERSION=2.7 -t py27 .
- run: mkdir caches
- run: docker save -o caches/py27.tar py27
- save_cache:
key: py27-{{ .Environment.CIRCLE_SHA1 }}
paths:
- "caches/"
py34_base:
docker:
- image: circleci/python:3.4
steps:
- checkout
- setup_remote_docker:
docker_layer_caching: true
- run: docker build -f .circleci/Dockerfile --build-arg PYTHON_VERSION=3.4 -t py34 .
- run: mkdir caches
- run: docker save -o caches/py34.tar py34
- save_cache:
key: py34-{{ .Environment.CIRCLE_SHA1 }}
paths:
- "caches/"
py35_base:
docker:
- image: circleci/python:3.5
steps:
- checkout
- setup_remote_docker:
docker_layer_caching: true
- run: docker build -f .circleci/Dockerfile --build-arg PYTHON_VERSION=3.5 -t py35 .
- run: mkdir caches
- run: docker save -o caches/py35.tar py35
- save_cache:
key: py35-{{ .Environment.CIRCLE_SHA1 }}
paths:
- "caches/"
flake8:
<<: *py27default
py35-dj111-cms35-fe:
<<: *py35default
py35-dj111-cms34:
<<: *py35default
py35-dj110-cms35:
<<: *py35default
py35-dj110-cms34:
<<: *py35default
py35-dj18-cms34:
<<: *py35default
py35-dj19-cms34:
<<: *py35default
py34-dj111-cms35:
<<: *py34default
py34-dj111-cms34:
<<: *py34default
py34-dj110-cms35:
<<: *py34default
py34-dj110-cms34:
<<: *py34default
py34-dj19-cms34:
<<: *py34default
py34-dj18-cms34:
<<: *py34default
py27-dj111-cms35:
<<: *py27default
py27-dj111-cms34:
<<: *py27default
py27-dj110-cms35:
<<: *py27default
py27-dj110-cms34:
<<: *py27default
py27-dj19-cms34:
<<: *py27default
py27-dj18-cms34:
<<: *py27default
#######################
workflows:
version: 2
build:
jobs:
- py27_base
- py34_base
- py35_base
- flake8:
requires:
- py27_base
- py35-dj111-cms35-fe:
requires:
- py35_base
- py35-dj111-cms34:
requires:
- py35_base
- py35-dj110-cms35:
requires:
- py35_base
- py35-dj110-cms34:
requires:
- py35_base
- py35-dj18-cms34:
requires:
- py35_base
- py35-dj19-cms34:
requires:
- py35_base
- py34-dj111-cms35:
requires:
- py34_base
- py34-dj111-cms34:
requires:
- py34_base
- py34-dj110-cms35:
requires:
- py34_base
- py34-dj110-cms34:
requires:
- py34_base
- py34-dj19-cms34:
requires:
- py34_base
- py34-dj18-cms34:
requires:
- py34_base
- py27-dj111-cms35:
requires:
- py27_base
- py27-dj111-cms34:
requires:
- py27_base
- py27-dj110-cms35:
requires:
- py27_base
- py27-dj110-cms34:
requires:
- py27_base
- py27-dj19-cms34:
requires:
- py27_base
- py27-dj18-cms34:
requires:
- py27_base