1
1
version : 2.1
2
2
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 : ¶metrised-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
+
3
55
jobs :
4
56
build-test :
5
- docker :
6
- - image : circleci/python:3.5.5
57
+ << : *parametrised-python-executor
58
+
7
59
steps :
8
60
- 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
25
66
26
67
- run :
27
- name : Build
68
+ name : Run Tests
28
69
command : |
29
70
source $HOME/.poetry/env
30
71
poetry run ./runtests
31
72
32
73
deploy :
33
- docker :
34
- - image : circleci/python:3.5.5
74
+ executor :
75
+ name : python
76
+ version : " 3.7"
35
77
steps :
36
78
- checkout
37
79
- run :
@@ -44,16 +86,21 @@ jobs:
44
86
--username "${PYPI_USERNAME}" \
45
87
--password "${PYPI_PASSWORD}" \
46
88
--no-interaction
89
+
47
90
workflows :
48
91
version : 2.1
49
92
50
93
build-test :
51
94
jobs :
52
- - build-test
95
+ - build-test :
96
+ name : build-test-py<< matrix.python-version >>-Django<< matrix.django-version >>
97
+ << : *version-matrix
53
98
54
99
build-test-deploy :
55
100
jobs :
56
101
- build-test :
102
+ name : build-test-py<< matrix.python-version >>-Django<< matrix.django-version >>
103
+ << : *version-matrix
57
104
filters :
58
105
tags :
59
106
only : /v[0-9]+(\.[0-9]+)*/
0 commit comments