@@ -285,6 +285,56 @@ jobs:
285285 - check-if-tests-needed
286286 - run_sonarqube
287287
288+ update-currency-versions :
289+ docker :
290+ - image : public.ecr.aws/docker/library/python:3.13
291+ steps :
292+ - run :
293+ name : Install system dependencies
294+ command : |
295+ apt-get update -q && apt-get install -y -q \
296+ default-libmysqlclient-dev build-essential
297+ - run :
298+ name : Probe latest installable versions in isolation
299+ command : |
300+ PACKAGES=(
301+ django fastapi flask pyramid sanic tornado
302+ werkzeug aiohttp httpx requests urllib3 grpcio
303+ mysqlclient PyMySQL pymongo psycopg2-binary redis
304+ SQLAlchemy aioamqp aio-pika pika
305+ google-cloud-pubsub google-cloud-storage celery
306+ starlette gevent
307+ cassandra-driver
308+ confluent-kafka kafka-python-ng
309+ boto3
310+ )
311+
312+ mkdir -p /tmp/pip-freeze
313+ OUTPUT=/tmp/pip-freeze/installed_default.txt
314+
315+ for pkg in "${PACKAGES[@]}"; do
316+ venv=$(mktemp -d)
317+ python -m venv "$venv" --quiet
318+ "$venv/bin/pip" install --quiet --upgrade pip 2>/dev/null
319+ "$venv/bin/pip" install --quiet --upgrade "$pkg" 2>/dev/null
320+ version=$("$venv/bin/pip" show "$pkg" 2>/dev/null \
321+ | grep "^Version:" | cut -d' ' -f2)
322+ if [ -n "$version" ]; then
323+ echo "$pkg==$version" >> "$OUTPUT"
324+ echo " ✓ $pkg==$version"
325+ else
326+ echo " ✗ $pkg: not found (skipped)"
327+ fi
328+ rm -rf "$venv"
329+ done
330+
331+ echo ""
332+ echo "--- installed_default.txt ---"
333+ cat "$OUTPUT"
334+ - store_artifacts :
335+ path : /tmp/pip-freeze
336+ destination : pip-freeze
337+
288338workflows :
289339 tests :
290340 max_auto_reruns : 2
@@ -309,3 +359,9 @@ workflows:
309359 - py312aws
310360 - py313kafka
311361 - autowrapt
362+ - update-currency-versions :
363+ requires :
364+ - final_job
365+ # filters:
366+ # branches:
367+ # only: main
0 commit comments