5
5
browser-tools :
circleci/[email protected]
6
6
7
7
executors :
8
- python :
9
- docker :
10
- - image : cimg/python:3.10
8
+ python3-9 : {docker: [{image: cimg/python:3.9}]}
9
+ python3-10 : {docker: [{image: cimg/python:3.10}]}
10
+ python3-11 : {docker: [{image: cimg/python:3.11}]}
11
+ python3-12 : {docker: [{image: cimg/python:3.12}]}
11
12
12
13
jobs :
13
14
setup :
14
- executor : python
15
+ executor : python3-12
15
16
steps :
16
17
- checkout
17
18
- python/install-packages :
18
19
pkg-manager : poetry
19
20
- run :
20
21
name : Install python dependencies
21
22
command : poetry install
22
- tests :
23
- executor : python
23
+ build :
24
+ executor : python3-12
25
+ parameters :
26
+ python-version :
27
+ type : string
28
+ default : " py39"
29
+ steps :
30
+ - checkout
31
+ - python/install-packages :
32
+ pkg-manager : poetry
33
+ - run :
34
+ name : Install apt dependencies
35
+ command : |
36
+ sudo apt-get update
37
+ sudo apt-get install -y libfuse-dev
38
+ - run :
39
+ command : poetry build
40
+ tests : &test-template
41
+ executor : python3-12
24
42
steps :
25
43
- checkout
26
44
- python/install-packages :
@@ -33,11 +51,27 @@ jobs:
33
51
- run :
34
52
command : poetry run pytest --cov=sizefs
35
53
- run :
36
- command : poetry run tox
54
+ command : poetry run tox -e << parameters.python-version >>
37
55
- run :
38
56
command : poetry build
57
+ tests-3-9 :
58
+ << : *test-template
59
+ executor : python3-9
60
+ parameters : {python-version: {default: "py39", type: string}}
61
+ tests-3-10 :
62
+ << : *test-template
63
+ executor : python3-10
64
+ parameters : {python-version: {default: "py310", type: string}}
65
+ tests-3-11 :
66
+ << : *test-template
67
+ executor : python3-11
68
+ parameters : {python-version: {default: "py311", type: string}}
69
+ tests-3-12 :
70
+ << : *test-template
71
+ executor : python3-12
72
+ parameters : {python-version: {default: "py312", type: string}}
39
73
linting :
40
- executor : python
74
+ executor : python3-12
41
75
steps :
42
76
- checkout
43
77
- python/install-packages :
@@ -51,5 +85,9 @@ workflows:
51
85
main :
52
86
jobs :
53
87
- setup
54
- - tests : {requires: [setup]}
88
+ - tests-3-9 : {requires: [setup], python-version: "py39"}
89
+ - tests-3-10 : {requires: [setup], python-version: "py310"}
90
+ - tests-3-11 : {requires: [setup], python-version: "py311"}
91
+ - tests-3-12 : {requires: [setup], python-version: "py312"}
55
92
- linting : {requires: [setup]}
93
+ - build : {requires: [setup, tests-3-9, tests-3-10, tests-3-11, tests-3-12, linting]}
0 commit comments