feat(qe-m3-01): implement GetBarsAsOf with lookahead bias prevention and complete unit tests
This commit is contained in:
+35
-3
@@ -16,6 +16,20 @@ concurrency:
|
||||
jobs:
|
||||
validate-core:
|
||||
runs-on: ubuntu-latest
|
||||
services:
|
||||
postgres:
|
||||
image: postgres:16
|
||||
env:
|
||||
POSTGRES_USER: quantengine_ci
|
||||
POSTGRES_PASSWORD: quantengine_ci
|
||||
POSTGRES_DB: quantenginedb
|
||||
ports:
|
||||
- 5432:5432
|
||||
options: >-
|
||||
--health-cmd pg_isready
|
||||
--health-interval 5s
|
||||
--health-timeout 5s
|
||||
--health-retries 10
|
||||
|
||||
steps:
|
||||
- name: Checkout Code
|
||||
@@ -41,10 +55,24 @@ jobs:
|
||||
/usr/bin/python3 --version
|
||||
/usr/bin/python3 -m pip --version
|
||||
/usr/bin/python3 -m pip install --disable-pip-version-check --quiet \
|
||||
--target "$PYTHON_DEPS" requests pyyaml openpyxl pytest
|
||||
--target "$PYTHON_DEPS" requests pyyaml openpyxl pytest "psycopg[binary]"
|
||||
export PYTHONPATH="$PYTHON_DEPS:${PYTHONPATH:-}"
|
||||
echo "PYTHONPATH=$PYTHON_DEPS:${PYTHONPATH:-}" >> "$GITHUB_ENV"
|
||||
/usr/bin/python3 -c 'import requests, yaml, openpyxl, pytest; print("Python dependencies: PASS")'
|
||||
/usr/bin/python3 -c 'import requests, yaml, openpyxl, pytest, psycopg; print("Python dependencies: PASS")'
|
||||
|
||||
- name: Apply Database Migrations (CI Postgres service)
|
||||
env:
|
||||
PGPASSWORD: quantengine_ci
|
||||
run: |
|
||||
# QE-M2-01 등 스키마 존재만 확인하는 게이트는 실제 Postgres에 대해 재검증한다
|
||||
# (2026-07-12: WBS 게이트가 마이그레이션 SQL만으로 스키마를 주장하지 않도록,
|
||||
# ci.yml 전용 postgres 서비스 컨테이너에 실제 DbUp 마이그레이션을 순서대로 적용).
|
||||
which psql || (sudo apt-get update -qq && sudo apt-get install -y -qq postgresql-client)
|
||||
for f in $(ls src/dotnet/QuantEngine.Infrastructure/Migrations/V*.sql | sort -V); do
|
||||
echo "=== Applying $f ==="
|
||||
psql -h 127.0.0.1 -p 5432 -U quantengine_ci -d quantenginedb -v ON_ERROR_STOP=1 -f "$f"
|
||||
done
|
||||
echo "QE_WBS_PG_DSN=host=127.0.0.1 port=5432 dbname=quantenginedb user=quantengine_ci password=quantengine_ci options='-c search_path=quantengine'" >> "$GITHUB_ENV"
|
||||
|
||||
- name: Install Node Dependencies
|
||||
run: |
|
||||
@@ -106,7 +134,11 @@ jobs:
|
||||
|
||||
- name: Generate DONE WBS Verdicts
|
||||
run: |
|
||||
for task in QE-M0-01 QE-M0-02 QE-M0-03 QE-M0-04 QE-M0-05 QE-M0-06; do
|
||||
# DONE 작업 중 CI(ubuntu-latest, 위 postgres 서비스 컨테이너)에서 온디맨드로 재검증
|
||||
# 가능한 것만 나열한다. 실제 KIS API/라이브 앱이 전제인 나머지 DONE 작업은
|
||||
# spec/60의 execution.mode: not_ci_reproducible 로 별도 표시되어
|
||||
# validate_quant_engine_wbs_v1.py 가 verdict 부재를 FAIL로 취급하지 않는다.
|
||||
for task in QE-M0-01 QE-M0-02 QE-M0-03 QE-M0-04 QE-M0-05 QE-M0-06 QE-M0-07 QE-M1-05 QE-M1-06 QE-M2-01 QE-M2-06; do
|
||||
python3 tools/verify_wbs_task_v1.py --task "$task"
|
||||
done
|
||||
|
||||
|
||||
Reference in New Issue
Block a user