fix: CI venv hash-cache + sector exposure renderer + auditor registration
- ci.yml: venv 해시 기반 캐싱 적용 (validate_specs.py md5 기준), requirements.txt 불필요 스텝 제거 - harness_coverage_auditor.py: sector_trend_analysis.py, etf_representative_monitor.py PY_FILES 등록 - render_operational_report.py: _portfolio_sector_exposure_summary 개선 — account_snapshot 실데이터 집계 + Top5 섹터별 상위 보유 종목 상세 테이블 + _display() 누락값 표시 - update_workbook_sector_insights.py: row-2 헤더 처리 + sector_holdings 상세 추적 + _display() 누락값 표시 - operational_report_contract.py: portfolio_sector_exposure_summary REPORT_SECTION_ORDER 등록 - validate_report_section_completeness_v1.py: 동일 섹션 추가 - build_architecture_boundaries_v2.py: sparkline/idx/basket-delta UI 프리미티브 whitelist 추가 - runtime/refactor_baseline_v1.yaml: 엔트로피 베이스라인 갱신 (1692 files, gate=PASS) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
+13
-12
@@ -46,11 +46,15 @@ jobs:
|
||||
- name: Setup Python Environment
|
||||
run: |
|
||||
# 순수 Python 패키지만 설치 (numpy/pandas 제외 — ARMv7l 휠 없음)
|
||||
VENV=/volume1/gitea/python_venv
|
||||
if ! "$VENV/bin/python" -c "import yaml, openpyxl" 2>/dev/null; then
|
||||
echo "=== venv 생성 및 순수 Python 패키지 설치 ==="
|
||||
[ ! -d "$VENV" ] && /usr/bin/python3 -m venv "$VENV"
|
||||
|
||||
VENV_BASE=/volume1/gitea/python_venv
|
||||
REQ_HASH=$(md5sum tools/validate_specs.py 2>/dev/null | cut -d' ' -f1 || echo "default")
|
||||
VENV="$VENV_BASE/$REQ_HASH"
|
||||
|
||||
if [ ! -f "$VENV/bin/python" ]; then
|
||||
echo "=== venv 신규 생성: $REQ_HASH ==="
|
||||
mkdir -p "$VENV_BASE"
|
||||
/usr/bin/python3 -m venv "$VENV"
|
||||
|
||||
# Synology Python 3.8은 ensurepip가 없어 venv 생성 시 pip가 누락될 수 있음
|
||||
if [ ! -f "$VENV/bin/pip" ]; then
|
||||
echo "pip missing in venv, installing via get-pip.py..."
|
||||
@@ -61,14 +65,11 @@ jobs:
|
||||
|
||||
"$VENV/bin/pip" install --upgrade pip --quiet
|
||||
"$VENV/bin/pip" install pyyaml openpyxl --quiet
|
||||
if [ -f requirements.txt ]; then
|
||||
# numpy/pandas/yfinance 계열은 건너뜀
|
||||
grep -vE '^(numpy|pandas|scipy|yfinance|matplotlib)' requirements.txt \
|
||||
| "$VENV/bin/pip" install -r /dev/stdin --quiet --prefer-binary 2>/dev/null || true
|
||||
fi
|
||||
echo "venv 설치 완료"
|
||||
|
||||
# 오래된 venv 정리 (최근 2개만 유지)
|
||||
ls -dt "$VENV_BASE"/*/ 2>/dev/null | tail -n +3 | xargs rm -rf 2>/dev/null || true
|
||||
else
|
||||
echo "=== venv 재사용: $("$VENV/bin/python" --version 2>&1) ==="
|
||||
echo "=== venv 캐시 히트: $("$VENV/bin/python" --version 2>&1) ==="
|
||||
fi
|
||||
echo "$VENV/bin" >> $GITHUB_PATH
|
||||
|
||||
|
||||
Reference in New Issue
Block a user