75 lines
1.8 KiB
YAML
75 lines
1.8 KiB
YAML
name: Tests
|
|
|
|
on:
|
|
push:
|
|
branches: [main, master, recovery/integration-lab]
|
|
pull_request:
|
|
branches: [main, master]
|
|
|
|
jobs:
|
|
test:
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
- name: Checkout code
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Set up Python
|
|
uses: actions/setup-python@v5
|
|
with:
|
|
python-version: '3.12'
|
|
cache: 'pip'
|
|
|
|
- name: Install system dependencies
|
|
run: |
|
|
sudo apt-get update
|
|
sudo apt-get install -y libta-lib0-dev
|
|
|
|
- name: Install Python dependencies
|
|
run: |
|
|
python -m pip install --upgrade pip
|
|
pip install -r requirements.txt
|
|
pip install pytest pytest-cov
|
|
|
|
- name: Syntax check
|
|
run: |
|
|
python -m py_compile src/*.py
|
|
python -m py_compile src/brokers/*.py
|
|
|
|
- name: Run critical test suites
|
|
working-directory: .
|
|
run: |
|
|
pytest tests/test_strategy_execution.py \
|
|
tests/test_execution_loop.py \
|
|
tests/test_paper_persistence.py \
|
|
tests/test_backtest_determinism.py \
|
|
tests/test_brokers.py \
|
|
-v --tb=short
|
|
|
|
- name: Run broker abstraction tests
|
|
working-directory: .
|
|
run: |
|
|
pytest tests/test_brokers.py -v --tb=short
|
|
|
|
lint:
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
- name: Checkout code
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Set up Python
|
|
uses: actions/setup-python@v5
|
|
with:
|
|
python-version: '3.12'
|
|
|
|
- name: Install linting tools
|
|
run: |
|
|
python -m pip install --upgrade pip
|
|
pip install ruff
|
|
|
|
- name: Check code style
|
|
run: |
|
|
ruff check src/ --select=E,F --ignore=E501,E402,F401 || true
|
|
continue-on-error: true
|