Skip to content

Commit 41f0d8a

Browse files
committed
fix: Modify pin_safe_versions script to install newer packages after grace period ended
Signed-off-by: Cagri Yonca <cagri@ibm.com>
1 parent c9639d7 commit 41f0d8a

2 files changed

Lines changed: 376 additions & 18 deletions

File tree

.circleci/config.yml

Lines changed: 78 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -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+
288336
workflows:
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

Comments
 (0)