- Add 9 missing env vars to EnvConfig schema (QVERIS_API_KEY, VIBE_TRADING_API_URL, OPENAI_MODEL, FUTU_TRADE_PWD_MD5, etc.) - Migrate 26 os.getenv calls to get_env_config() accessor across 17 files - Add # noqa: env-gate inline suppression to ci_env_var_gate.py (21 lines) - Refactor security.py _env_flag_enabled to direct schema access - Wire CI gate into .github/workflows/test.yml - Fix api_server.py import of deleted constants - Restore _legacy.py timeout positive-value validation - Add reset_env_config() to test_security_auth_api.py for singleton freshness CI gate: exit 0 (was exit 1 with 54 violations) Tests: 4953 passed, 4 pre-existing tushare failures, 0 regressions Co-Authored-By: OpenCode <noreply@opencode.ai> AI-Model: qwen3.7-max Co-Authored-By: opencode <noreply@ai-tool.com> Co-Authored-By: Claude Code <noreply@anthropic.com> AI-Contributed/Feature: 188/188 AI-Contributed/UT: 39/39
60 lines
1.5 KiB
YAML
60 lines
1.5 KiB
YAML
name: CI
|
|
|
|
on:
|
|
push:
|
|
branches: [main]
|
|
pull_request:
|
|
branches: [main]
|
|
|
|
jobs:
|
|
test:
|
|
runs-on: ubuntu-latest
|
|
timeout-minutes: 10
|
|
|
|
steps:
|
|
- uses: actions/checkout@v6
|
|
|
|
- uses: actions/setup-python@v6
|
|
with:
|
|
python-version: "3.11"
|
|
cache: pip
|
|
|
|
- name: Install dependencies
|
|
run: pip install -e ".[dev]"
|
|
|
|
- name: CI env var gate
|
|
run: python tools/ci_env_var_gate.py
|
|
|
|
- name: Syntax check
|
|
run: |
|
|
cd agent
|
|
python -m compileall -q cli
|
|
python -m py_compile api_server.py
|
|
python -m py_compile mcp_server.py
|
|
python -m py_compile src/agent/loop.py
|
|
python -m py_compile src/tools/__init__.py
|
|
python -m py_compile backtest/runner.py
|
|
|
|
- name: Run tests
|
|
# test_e2e_harness_v2.py is gated by VIBE_TRADING_RUN_LIVE_E2E
|
|
# (real-LLM only); list --ignore here so CI's intent is explicit and
|
|
# the suite never silently switches state on env presence.
|
|
run: pytest --ignore=agent/tests/e2e_backtest --ignore=agent/tests/test_e2e_harness_v2.py --cov=agent --cov-report=term-missing --cov-report=xml --tb=short -q
|
|
|
|
- uses: actions/setup-node@v6
|
|
with:
|
|
node-version: "20"
|
|
cache: npm
|
|
cache-dependency-path: frontend/package-lock.json
|
|
|
|
- name: Frontend build
|
|
run: |
|
|
cd frontend
|
|
npm ci
|
|
npm run build
|
|
|
|
- name: Frontend tests
|
|
run: |
|
|
cd frontend
|
|
npx vitest run --reporter=verbose
|