Skip to content

Commit 3e5befd

Browse files
committed
Test on many versions in CI
1 parent 943c877 commit 3e5befd

File tree

1 file changed

+69
-22
lines changed

1 file changed

+69
-22
lines changed

.circleci/config.yml

+69-22
Original file line numberDiff line numberDiff line change
@@ -1,37 +1,79 @@
11
version: 2.1
22

3+
references:
4+
install-poetry: &install-poetry
5+
run:
6+
name: Install Poetry
7+
command: |
8+
curl -sSL https://raw.githubusercontent.com/python-poetry/poetry/master/get-poetry.py | python
9+
restore-dependencies-cache: &restore-dependencies-cache
10+
restore_cache:
11+
keys:
12+
- deps-py<< parameters.python-version >>-django<< parameters.django-version >>-{{ checksum "poetry.lock" }}
13+
install-dependencies: &install-dependencies
14+
run:
15+
name: Install Dependencies
16+
command: |
17+
source $HOME/.poetry/env
18+
poetry install
19+
poetry run pip install "django~=<< parameters.django-version >>.0"
20+
save-dependencies-cache: &save-dependencies-cache
21+
save_cache:
22+
key: deps-py<< parameters.python-version >>-django<< parameters.django-version >>-{{ checksum "poetry.lock" }}
23+
paths:
24+
- /home/circleci/.cache/pypoetry/virtualenvs
25+
parametrised-python-executor: &parametrised-python-executor
26+
parameters:
27+
python-version:
28+
type: string
29+
django-version:
30+
type: string
31+
executor:
32+
name: python
33+
version: << parameters.python-version >>
34+
version-matrix: &version-matrix
35+
matrix:
36+
parameters:
37+
python-version: ["3.5.5", "3.6", "3.7"]
38+
django-version: ["2.2", "3.0", "3.1", "3.2"]
39+
exclude:
40+
- python-version: "3.5.5"
41+
django-version: "3.0"
42+
- python-version: "3.5.5"
43+
django-version: "3.1"
44+
- python-version: "3.5.5"
45+
django-version: "3.2"
46+
47+
executors:
48+
python:
49+
parameters:
50+
version:
51+
type: string
52+
docker:
53+
- image: circleci/python:<< parameters.version >>
54+
355
jobs:
456
build-test:
5-
docker:
6-
- image: circleci/python:3.5.5
57+
<<: *parametrised-python-executor
58+
759
steps:
860
- checkout
9-
- run:
10-
name: Install Poetry
11-
command: |
12-
curl -sSL https://raw.githubusercontent.com/python-poetry/poetry/master/get-poetry.py | python
13-
- restore_cache:
14-
keys:
15-
- deps-{{ checksum "poetry.lock" }}
16-
- run:
17-
name: Install Dependencies
18-
command: |
19-
source $HOME/.poetry/env
20-
poetry install
21-
- save_cache:
22-
key: deps-{{ checksum "poetry.lock" }}
23-
paths:
24-
- /home/circleci/.cache/pypoetry/virtualenvs
61+
62+
- *install-poetry
63+
- *restore-dependencies-cache
64+
- *install-dependencies
65+
- *save-dependencies-cache
2566

2667
- run:
27-
name: Build
68+
name: Run Tests
2869
command: |
2970
source $HOME/.poetry/env
3071
poetry run ./runtests
3172
3273
deploy:
33-
docker:
34-
- image: circleci/python:3.5.5
74+
executor:
75+
name: python
76+
version: "3.7"
3577
steps:
3678
- checkout
3779
- run:
@@ -44,16 +86,21 @@ jobs:
4486
--username "${PYPI_USERNAME}" \
4587
--password "${PYPI_PASSWORD}" \
4688
--no-interaction
89+
4790
workflows:
4891
version: 2.1
4992

5093
build-test:
5194
jobs:
52-
- build-test
95+
- build-test:
96+
name: build-test-py<< matrix.python-version >>-Django<< matrix.django-version >>
97+
<<: *version-matrix
5398

5499
build-test-deploy:
55100
jobs:
56101
- build-test:
102+
name: build-test-py<< matrix.python-version >>-Django<< matrix.django-version >>
103+
<<: *version-matrix
57104
filters:
58105
tags:
59106
only: /v[0-9]+(\.[0-9]+)*/

0 commit comments

Comments
 (0)