run_flow.sh의 update_docs_file 단계가 존재하지 않는 src/ 경로를 참조하던 버그를 고친다

5)단계가 다른 단계들과 다르게 update_docs_file 모듈을 sys.path.insert("$UPDATE_CATALOG_ROOT/src")
로 직접 import했는데, agent/update_catalog/src/ 는 애초에 존재한 적이 없다(각 Skill은
skills/<name>/scripts/update_catalog/ 에 자기 완결적으로 있다) — 그래서 이 단계는 항상
ModuleNotFoundError로 죽었다. keycloakx 7.2.2→7.3.0 업그레이드 중 실측 확인.

다른 단계와 동일하게 update_docs_file/scripts/run.py를 서브프로세스로 호출하도록 고쳤다.
격리된 샌드박스 레포에서 재현 시나리오로 수정 후 정상 동작 확인.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
wbsong111
2026-08-26 11:26:13 +09:00
parent 8b89aa78af
commit 229303c4a8
+21 -19
View File
@@ -146,28 +146,30 @@ PY
# 5) update_docs_file: TO_VERSION의 CUSTOM-README.md에 업그레이드 주의사항 추가
CUSTOM_README_TO_RELATIVE="manifests/helm/$CHART/$TO_VERSION/CUSTOM-README.md"
UPGRADE_DOC_MD="$CHART_OUT_DIR/upgrade_doc.md"
# generate_upgrade_doc의 markdown 필드를 파일로 뽑는다 — run.py는 --content-file 로만 받는다
# (다른 Skill과 동일하게 self-contained scripts/update_catalog/ 를 통해 run.py CLI로 호출한다.
# 예전엔 여기서 "$UPDATE_CATALOG_ROOT/src" 를 sys.path 에 넣어 모듈을 직접 import 했는데,
# 그 경로가 애초에 존재한 적이 없어 항상 ModuleNotFoundError 로 죽었다 — 실측 확인.)
python3 -c "
import json
from pathlib import Path
d = json.loads(Path('$UPGRADE_DOC_JSON').read_text())
Path('$UPGRADE_DOC_MD').write_text(d.get('markdown', ''))
"
python3 "$UPDATE_CATALOG_ROOT/skills/update_docs_file/scripts/run.py" \
--repo-path "$CATALOG_ROOT" \
--docs-file "$CUSTOM_README_TO_RELATIVE" \
--version "$FROM_VERSION$TO_VERSION" \
--content-file "$UPGRADE_DOC_MD" \
> "$UPDATE_DOCS_JSON"
python3 - <<PY
import json, subprocess, sys
import json
from pathlib import Path
upgrade_doc = json.loads(Path("$UPGRADE_DOC_JSON").read_text())
markdown = upgrade_doc.get("markdown", "")
payload = {
"repo_path": "$CATALOG_ROOT",
"docs_file": "$CUSTOM_README_TO_RELATIVE",
"version": "$FROM_VERSION → $TO_VERSION",
"content": markdown,
"overwrite": False,
}
import sys
sys.path.insert(0, "$UPDATE_CATALOG_ROOT/src")
from update_catalog.update_docs_file import update_docs_file
result = update_docs_file(payload)
import json as _json
Path("$UPDATE_DOCS_JSON").write_text(_json.dumps(result))
result = json.loads(Path("$UPDATE_DOCS_JSON").read_text())
status = "already existed" if result.get("already_existed") else "updated"
print(f"update_docs_file: {result.get('file_path')} [{status}]")
PY