@@ -34,17 +34,59 @@ common: &common
34
34
- .tox
35
35
- ~/.cache/pip
36
36
- ~/.local
37
- - ./eggs
38
37
key : cache-v1-{{ arch }}-{{ .Environment.CIRCLE_JOB }}-{{ checksum "setup.py" }}-{{ checksum "tox.ini" }}
39
38
40
39
orbs :
41
40
42
41
43
- windows_steps : &windows_steps
44
- executor :
45
- name : win/default
46
- shell : bash.exe
47
- working_directory : C:\Users\circleci\project\eth-utils
42
+ windows-wheel-steps :
43
+ windows-wheel-setup : &windows-wheel-setup
44
+ executor :
45
+ name : win/default
46
+ shell : bash.exe
47
+ working_directory : C:\Users\circleci\project\eth-utils
48
+ environment :
49
+ TOXENV : windows-wheel
50
+ restore-cache-step : &restore-cache-step
51
+ restore_cache :
52
+ keys :
53
+ - cache-v1-{{ arch }}-{{ .Environment.CIRCLE_JOB }}-{{ checksum "setup.py" }}-{{ checksum "tox.ini" }}
54
+ install-pyenv-step : &install-pyenv-step
55
+ run :
56
+ name : install pyenv
57
+ command : |
58
+ pip install pyenv-win --target $HOME/.pyenv
59
+ echo 'export PYENV="$HOME/.pyenv/pyenv-win/"' >> $BASH_ENV
60
+ echo 'export PYENV_ROOT="$HOME/.pyenv/pyenv-win/"' >> $BASH_ENV
61
+ echo 'export PYENV_USERPROFILE="$HOME/.pyenv/pyenv-win/"' >> $BASH_ENV
62
+ echo 'export PATH="$PATH:$HOME/.pyenv/pyenv-win/bin"' >> $BASH_ENV
63
+ echo 'export PATH="$PATH:$HOME/.pyenv/pyenv-win/shims"' >> $BASH_ENV
64
+ source $BASH_ENV
65
+ pyenv update
66
+ install-latest-python-step : &install-latest-python-step
67
+ run :
68
+ name : install latest python version and tox
69
+ command : |
70
+ LATEST_VERSION=$(pyenv install --list | grep -E "${MINOR_VERSION}\.[0-9]+$" | tail -1)
71
+ echo "installing python version $LATEST_VERSION"
72
+ pyenv install $LATEST_VERSION
73
+ pyenv global $LATEST_VERSION
74
+ python3 -m pip install --upgrade pip
75
+ python3 -m pip install tox
76
+ run-tox-step : &run-tox-step
77
+ run :
78
+ name : run tox
79
+ command : |
80
+ echo 'running tox with' $(python3 --version)
81
+ python3 -m tox run -r
82
+ save-cache-step : &save-cache-step
83
+ save_cache :
84
+ paths :
85
+ - .tox
86
+ key : cache-v1-{{ arch }}-{{ .Environment.CIRCLE_JOB }}-{{ checksum "setup.py" }}-{{ checksum "tox.ini" }}
87
+
88
+ docs : &docs
89
+ working_directory : ~/repo
48
90
steps :
49
91
- checkout
50
92
- restore_cache :
@@ -55,28 +97,32 @@ windows_steps: &windows_steps
55
97
command : |
56
98
python -m pip install --upgrade pip
57
99
python -m pip install tox
100
+ - run :
101
+ name : install latexpdf dependencies
102
+ command : |
103
+ sudo apt-get update
104
+ sudo apt-get install latexmk tex-gyre texlive-fonts-extra texlive-xetex xindy
58
105
- run :
59
106
name : run tox
60
107
command : python -m tox run -r
108
+ - store_artifacts :
109
+ path : /home/circleci/repo/docs/_build
61
110
- save_cache :
62
111
paths :
63
112
- .tox
113
+ - ~/.cache/pip
114
+ - ~/.local
64
115
key : cache-v1-{{ arch }}-{{ .Environment.CIRCLE_JOB }}-{{ checksum "setup.py" }}-{{ checksum "tox.ini" }}
116
+ resource_class : xlarge
65
117
66
118
jobs :
67
119
docs :
68
- << : *common
120
+ << : *docs
69
121
docker :
70
- - image : cimg/python:3.8
122
+ - image : cimg/python:3.10
71
123
environment :
72
124
TOXENV : docs
73
125
74
- py37-core :
75
- << : *common
76
- docker :
77
- - image : cimg/python:3.7
78
- environment :
79
- TOXENV : py37-core
80
126
py38-core :
81
127
<< : *common
82
128
docker :
@@ -101,6 +147,18 @@ jobs:
101
147
- image : cimg/python:3.11
102
148
environment :
103
149
TOXENV : py311-core
150
+ py312-core :
151
+ << : *common
152
+ docker :
153
+ - image : cimg/python:3.12
154
+ environment :
155
+ TOXENV : py312-core
156
+ py313-core :
157
+ << : *common
158
+ docker :
159
+ - image : cimg/python:3.13
160
+ environment :
161
+ TOXENV : py313-core
104
162
105
163
py38-lint :
106
164
<< : *common
@@ -126,13 +184,19 @@ jobs:
126
184
- image : cimg/python:3.11
127
185
environment :
128
186
TOXENV : py311-lint
129
-
130
- py37-wheel :
187
+ py312-lint :
188
+ << : *common
189
+ docker :
190
+ - image : cimg/python:3.12
191
+ environment :
192
+ TOXENV : py312-lint
193
+ py313-lint :
131
194
<< : *common
132
195
docker :
133
- - image : cimg/python:3.7
196
+ - image : cimg/python:3.13
134
197
environment :
135
- TOXENV : py37-wheel
198
+ TOXENV : py313-lint
199
+
136
200
py38-wheel :
137
201
<< : *common
138
202
docker :
@@ -157,29 +221,93 @@ jobs:
157
221
- image : cimg/python:3.11
158
222
environment :
159
223
TOXENV : py311-wheel
224
+ py312-wheel :
225
+ << : *common
226
+ docker :
227
+ - image : cimg/python:3.12
228
+ environment :
229
+ TOXENV : py312-wheel
230
+ py313-wheel :
231
+ << : *common
232
+ docker :
233
+ - image : cimg/python:3.13
234
+ environment :
235
+ TOXENV : py313-wheel
236
+
237
+ py311-windows-wheel :
238
+ << : *windows-wheel-setup
239
+ steps :
240
+ - checkout
241
+ - << : *restore-cache-step
242
+ - << : *install-pyenv-step
243
+ - run :
244
+ name : set minor version
245
+ command : echo "export MINOR_VERSION='3.11'" >> $BASH_ENV
246
+ - << : *install-latest-python-step
247
+ - << : *run-tox-step
248
+ - << : *save-cache-step
249
+
250
+ py312-windows-wheel :
251
+ << : *windows-wheel-setup
252
+ steps :
253
+ - checkout
254
+ - << : *restore-cache-step
255
+ - << : *install-pyenv-step
256
+ - run :
257
+ name : set minor version
258
+ command : echo "export MINOR_VERSION='3.12'" >> $BASH_ENV
259
+ - << : *install-latest-python-step
260
+ - << : *run-tox-step
261
+ - << : *save-cache-step
262
+
263
+ py313-windows-wheel :
264
+ << : *windows-wheel-setup
265
+ steps :
266
+ - checkout
267
+ - << : *restore-cache-step
268
+ - << : *install-pyenv-step
269
+ - run :
270
+ name : set minor version
271
+ command : echo "export MINOR_VERSION='3.13'" >> $BASH_ENV
272
+ - << : *install-latest-python-step
273
+ - << : *run-tox-step
274
+ - << : *save-cache-step
275
+
276
+ define : &all_jobs
277
+ - docs
278
+ - py38-core
279
+ - py39-core
280
+ - py310-core
281
+ - py311-core
282
+ - py312-core
283
+ - py313-core
284
+ - py38-lint
285
+ - py39-lint
286
+ - py310-lint
287
+ - py311-lint
288
+ - py312-lint
289
+ - py313-lint
290
+ - py38-wheel
291
+ - py39-wheel
292
+ - py310-wheel
293
+ - py311-wheel
294
+ - py312-wheel
295
+ - py313-wheel
296
+ - py311-windows-wheel
297
+ - py312-windows-wheel
298
+ - py313-windows-wheel
160
299
161
- py311-wheel-windows :
162
- << : *windows_steps
163
- environment :
164
- TOXENV : py311-wheel-windows
165
-
166
300
workflows :
167
301
version : 2
168
302
test :
169
- jobs :
170
- - docs
171
- - py37-core
172
- - py38-core
173
- - py39-core
174
- - py310-core
175
- - py311-core
176
- - py38-lint
177
- - py39-lint
178
- - py310-lint
179
- - py311-lint
180
- - py37-wheel
181
- - py38-wheel
182
- - py39-wheel
183
- - py310-wheel
184
- - py311-wheel
185
- - py311-wheel-windows
303
+ jobs : *all_jobs
304
+ nightly :
305
+ triggers :
306
+ - schedule :
307
+ # Weekdays 12:00p UTC
308
+ cron : " 0 12 * * 1,2,3,4,5"
309
+ filters :
310
+ branches :
311
+ only :
312
+ - main
313
+ jobs : *all_jobs
0 commit comments