@@ -46,6 +46,12 @@ commands:
4646 command : |
4747 . venv/bin/activate
4848 pip install -r <<parameters.requirements>>
49+ - run :
50+ name : Apply grace period to installed packages
51+ command : |
52+ . venv/bin/activate
53+ pip install --quiet requests packaging
54+ python .circleci/pin_safe_versions.py <<parameters.requirements>>
4955
5056 run-tests-with-coverage-report :
5157 parameters :
@@ -81,6 +87,22 @@ commands:
8187 paths :
8288 - coverage_results
8389
90+ capture-installed-versions :
91+ parameters :
92+ label :
93+ type : string
94+ steps :
95+ - run :
96+ name : Capture installed package versions
97+ when : on_success
98+ command : |
99+ . venv/bin/activate
100+ pip freeze > /tmp/installed_<<parameters.label>>.txt
101+ - persist_to_workspace :
102+ root : /tmp
103+ paths :
104+ - installed_<<parameters.label>>.txt
105+
84106 store-pytest-results :
85107 steps :
86108 - store_test_results :
@@ -158,57 +180,65 @@ jobs:
158180 - pip-install-deps
159181 - pip-install-tests-deps
160182 - run-tests-with-coverage-report
183+ - capture-installed-versions :
184+ label : " py<<parameters.py-version>>"
161185 - store-pytest-results
162186 - store-coverage-report
163187
164- py39cassandra :
188+ py39gevent :
165189 docker :
166190 - image : public.ecr.aws/docker/library/python:3.9
167- - image : public.ecr.aws/docker/library/cassandra:3.11.16-jammy
168- environment :
169- MAX_HEAP_SIZE : 2048m
170- HEAP_NEWSIZE : 512m
171191 working_directory : ~/repo
172192 steps :
173193 - checkout
174194 - check-if-tests-needed
175195 - pip-install-deps
176196 - pip-install-tests-deps :
177- requirements : " tests/requirements-cassandra .txt"
197+ requirements : " tests/requirements-gevent-starlette .txt"
178198 - run-tests-with-coverage-report :
179- cassandra : " true"
180- tests : " tests/clients/test_cassandra-driver.py"
199+ gevent : " true"
200+ tests : " tests/frameworks/test_gevent.py"
201+ - capture-installed-versions :
202+ label : " gevent"
181203 - store-pytest-results
182204 - store-coverage-report
183205
184- py39gevent :
206+ py312aws :
185207 docker :
186- - image : public.ecr.aws/docker/library/python:3.9
208+ - image : public.ecr.aws/docker/library/python:3.12
187209 working_directory : ~/repo
188210 steps :
189211 - checkout
190212 - check-if-tests-needed
191213 - pip-install-deps
192214 - pip-install-tests-deps :
193- requirements : " tests/requirements-gevent-starlette .txt"
215+ requirements : " tests/requirements-aws .txt"
194216 - run-tests-with-coverage-report :
195- gevent : " true"
196- tests : " tests/frameworks/test_gevent.py"
217+ tests : " tests_aws"
218+ - capture-installed-versions :
219+ label : " aws"
197220 - store-pytest-results
198221 - store-coverage-report
199222
200- py312aws :
223+ py312cassandra :
201224 docker :
202225 - image : public.ecr.aws/docker/library/python:3.12
226+ - image : public.ecr.aws/docker/library/cassandra:3.11.16-jammy
227+ environment :
228+ MAX_HEAP_SIZE : 2048m
229+ HEAP_NEWSIZE : 512m
203230 working_directory : ~/repo
204231 steps :
205232 - checkout
206233 - check-if-tests-needed
207234 - pip-install-deps
208235 - pip-install-tests-deps :
209- requirements : " tests/requirements-aws .txt"
236+ requirements : " tests/requirements-cassandra .txt"
210237 - run-tests-with-coverage-report :
211- tests : " tests_aws"
238+ cassandra : " true"
239+ tests : " tests/clients/test_cassandra-driver.py"
240+ - capture-installed-versions :
241+ label : " cassandra"
212242 - store-pytest-results
213243 - store-coverage-report
214244
@@ -253,6 +283,8 @@ jobs:
253283 - run-tests-with-coverage-report :
254284 kafka : " true"
255285 tests : " tests/clients/kafka/test*.py"
286+ - capture-installed-versions :
287+ label : " kafka"
256288 - store-pytest-results
257289 - store-coverage-report
258290
@@ -285,6 +317,22 @@ jobs:
285317 - check-if-tests-needed
286318 - run_sonarqube
287319
320+ update-currency-versions :
321+ docker :
322+ - image : public.ecr.aws/docker/library/alpine:latest
323+ steps :
324+ - attach_workspace :
325+ at : /tmp/workspace
326+ - run :
327+ name : Collect pip freeze files
328+ command : |
329+ mkdir -p /tmp/pip-freeze
330+ cp /tmp/workspace/installed_*.txt /tmp/pip-freeze/
331+ ls -la /tmp/pip-freeze/
332+ - store_artifacts :
333+ path : /tmp/pip-freeze
334+ destination : pip-freeze
335+
288336workflows :
289337 tests :
290338 max_auto_reruns : 2
@@ -293,9 +341,9 @@ workflows:
293341 matrix :
294342 parameters :
295343 py-version : ["3.9", "3.10", "3.11", "3.12", "3.13", "3.14"]
296- - py39cassandra
297344 - py39gevent
298345 - py312aws
346+ - py312cassandra
299347 - py313kafka
300348 - autowrapt :
301349 matrix :
@@ -304,8 +352,20 @@ workflows:
304352 - final_job :
305353 requires :
306354 - python3x
307- - py39cassandra
308355 - py39gevent
309356 - py312aws
357+ - py312cassandra
310358 - py313kafka
311359 - autowrapt
360+ - update-currency-versions :
361+ filters :
362+ branches :
363+ only :
364+ - main
365+ requires :
366+ - python3x
367+ - py39gevent
368+ - py312aws
369+ - py312cassandra
370+ - py313kafka
371+ - final_job
0 commit comments