brighter-trading/.github/workflows/test.yml

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