From 610b9b133055d9791e51ab7a7b5b3ca6d30ac0c1 Mon Sep 17 00:00:00 2001 From: kjh2064 Date: Sun, 21 Jun 2026 23:17:57 +0900 Subject: [PATCH] fix: reinstall workflow deps on cached venvs --- .gitea/workflows/ci.yml | 1 + .gitea/workflows/kis_data_collection.yml | 1 + .gitea/workflows/qualitative_sell_strategy.yml | 1 + .gitea/workflows/snapshot_admin.yml | 13 +++++++++++++ docs/CHANGESET_COMMIT_PR_SUMMARY_2026-06-21.md | 5 +++-- 5 files changed, 19 insertions(+), 2 deletions(-) diff --git a/.gitea/workflows/ci.yml b/.gitea/workflows/ci.yml index 22bac10..c658ce9 100644 --- a/.gitea/workflows/ci.yml +++ b/.gitea/workflows/ci.yml @@ -71,6 +71,7 @@ jobs: else echo "=== venv 캐시 히트: $("$VENV/bin/python" --version 2>&1) ===" fi + "$VENV/bin/pip" install requests pyyaml openpyxl --quiet echo "$VENV/bin" >> $GITHUB_PATH - name: Install Node Dependencies diff --git a/.gitea/workflows/kis_data_collection.yml b/.gitea/workflows/kis_data_collection.yml index 51b6940..cb16eca 100644 --- a/.gitea/workflows/kis_data_collection.yml +++ b/.gitea/workflows/kis_data_collection.yml @@ -120,6 +120,7 @@ jobs: "$VENV/bin/pip" install requests beautifulsoup4 pyyaml --quiet ls -dt "$VENV_BASE"/*/ 2>/dev/null | tail -n +3 | xargs rm -rf 2>/dev/null || true fi + "$VENV/bin/pip" install requests beautifulsoup4 pyyaml --quiet echo "$VENV/bin" >> $GITHUB_PATH - name: "[CRITICAL] No Direct API Trading Gate" diff --git a/.gitea/workflows/qualitative_sell_strategy.yml b/.gitea/workflows/qualitative_sell_strategy.yml index e2f3b7e..ff58813 100644 --- a/.gitea/workflows/qualitative_sell_strategy.yml +++ b/.gitea/workflows/qualitative_sell_strategy.yml @@ -90,6 +90,7 @@ jobs: "$VENV/bin/pip" install --upgrade pip --quiet "$VENV/bin/pip" install requests beautifulsoup4 pyyaml openpyxl --quiet fi + "$VENV/bin/pip" install requests beautifulsoup4 pyyaml openpyxl --quiet echo "$VENV/bin" >> $GITHUB_PATH - name: "[CRITICAL] No Direct API Trading Gate" diff --git a/.gitea/workflows/snapshot_admin.yml b/.gitea/workflows/snapshot_admin.yml index dbbfc6f..ff6b473 100644 --- a/.gitea/workflows/snapshot_admin.yml +++ b/.gitea/workflows/snapshot_admin.yml @@ -28,6 +28,19 @@ jobs: git fetch origin main --depth=1 git reset --hard FETCH_HEAD + - name: Setup Python Environment + run: | + VENV_BASE=/volume1/gitea/python_venv + REQ_HASH=$(md5sum tools/validate_snapshot_admin_workflow_v1.py 2>/dev/null | cut -d' ' -f1 || echo "snapshot-admin-default") + VENV="$VENV_BASE/$REQ_HASH" + if [ ! -f "$VENV/bin/python" ]; then + mkdir -p "$VENV_BASE" + /usr/bin/python3 -m venv "$VENV" + "$VENV/bin/pip" install --upgrade pip --quiet + fi + "$VENV/bin/pip" install pyyaml --quiet + echo "$VENV/bin" >> $GITHUB_PATH + - name: Validate Snapshot Admin Workflow run: python3 tools/validate_snapshot_admin_workflow_v1.py diff --git a/docs/CHANGESET_COMMIT_PR_SUMMARY_2026-06-21.md b/docs/CHANGESET_COMMIT_PR_SUMMARY_2026-06-21.md index 8596517..54adf53 100644 --- a/docs/CHANGESET_COMMIT_PR_SUMMARY_2026-06-21.md +++ b/docs/CHANGESET_COMMIT_PR_SUMMARY_2026-06-21.md @@ -2,13 +2,14 @@ ## Title -`Synology CI Python 3.8 compatibility fixes for snapshot_admin and KIS validation` +`Synology CI dependency hardening for snapshot_admin and KIS validation` ## Short Body - `src/quant_engine/snapshot_admin_store_v1.py` no longer imports `zoneinfo`, so the Synology Python 3.8.12 runner can import the snapshot admin store without crashing. - `src/quant_engine/kis_api_client_v1.py` now lazy-loads `requests`, which keeps the module importable in tests and turns missing dependency failures into explicit runtime validation errors. -- `.gitea/workflows/ci.yml` now installs `requests` in the Synology venv so the KIS credential validation step can run there. +- `.gitea/workflows/ci.yml`, `.gitea/workflows/kis_data_collection.yml`, and `.gitea/workflows/qualitative_sell_strategy.yml` now reinstall their Python dependencies on every run so cached venvs cannot hide missing packages. +- `.gitea/workflows/snapshot_admin.yml` now has a Python setup step that installs `pyyaml` before the snapshot admin workflow validators run. - `docs/SYNOLOGY_SNAPSHOT_ADMIN_FINAL_EXECUTION_ONE_PAGER.md` remains the compact NAS field run sheet for the `WBS-7.9` live verification sequence. - `docs/SYNOLOGY_SNAPSHOT_ADMIN_DEPLOYMENT_CHECKLIST.md` points at the one-page run sheet and keeps the evidence rule explicit so `WBS-7.9` stays open until NAS-side verification is archived. - `docs/ROADMAP_WBS.md` still states the `WBS-4.1 -> WBS-4.2 -> WBS-4.3` wait order explicitly and separates loopback smoke success from actual NAS live verification.