name: Qualitative Sell Strategy Pipeline on: schedule: - cron: "15 0 * * 1-5" # Daily 00:15 KST (weekdays only, before KIS validation) push: paths: - "spec/qualitative_sell_strategy*.yaml" - "src/quant_engine/qualitative_sell*.py" - "tools/validate_qualitative_sell_strategy*.py" workflow_dispatch: jobs: validate-strategy: name: "Validate Qualitative Sell Strategy" runs-on: ubuntu-latest env: PYTHONPATH: "$HOME/python_deps/strategy:." steps: - name: Checkout Code uses: actions/checkout@v3 - name: Setup Python Environment run: | PYTHON_DEPS="$HOME/python_deps/strategy" mkdir -p "$PYTHON_DEPS" /usr/bin/python3 -m pip install --disable-pip-version-check --quiet \ --target "$PYTHON_DEPS" pyyaml echo "✓ Python dependencies installed" - name: Validate KIS API Credentials (mock) env: KIS_APP_Key_TEST: ${{ vars.KIS_APP_KEY_TEST }} KIS_APP_Secret_TEST: ${{ vars.KIS_APP_SECRET_TEST }} run: | python3 tools/validate_kis_api_credentials_v1.py \ --account mock \ --ticker 005930 \ --dry-run echo "✓ KIS credentials validated" - name: Validate Qualitative Sell Strategy Pipeline run: | python3 tools/validate_qualitative_sell_strategy_pipeline_v1.py echo "✓ Qualitative sell strategy pipeline validated" - name: Validate Strategy Store (Integration) run: | python3 -m pytest tests/unit/test_qualitative_sell_strategy_store_v1.py \ -v \ --tb=short \ --no-header echo "✓ Strategy store tests passed" notify-result: name: "Notify Strategy Validation Status" if: always() needs: validate-strategy runs-on: ubuntu-latest steps: - name: Report Status env: STRATEGY_STATUS: ${{ needs.validate-strategy.result }} run: | if [ "$STRATEGY_STATUS" = "success" ]; then echo "✅ Qualitative sell strategy: VALID" exit 0 else echo "❌ Qualitative sell strategy: VALIDATION FAILED" exit 1 fi