name: CI on: push: branches: [main] pull_request: branches: [main] env: PIP_CACHE_DIR: ${{ github.workspace }}/.cache/pip PYTHONUNBUFFERED: "1" jobs: lint: runs-on: [linux, docker] container: image: catthehacker/ubuntu:act-latest steps: - uses: actions/checkout@v4 - name: Set up Python uses: actions/setup-python@v5 with: python-version: '3.12' - name: Install dependencies run: | python -m pip install --upgrade pip pip install ruff black - name: Run ruff run: ruff check app tests scripts - name: Run black run: black --check app tests scripts test: runs-on: [linux, docker] container: image: catthehacker/ubuntu:act-latest steps: - uses: actions/checkout@v4 - name: Set up Python uses: actions/setup-python@v5 with: python-version: '3.12' - name: Install dependencies run: | set -x python -m pip install --upgrade pip pip install pytest pytest-asyncio httpx pip install nicegui fastapi uvicorn yfinance polars pandas pydantic pyyaml pip list - name: Run tests run: pytest -v --tb=short type-check: runs-on: [linux, docker] container: image: catthehacker/ubuntu:act-latest steps: - uses: actions/checkout@v4 - name: Set up Python uses: actions/setup-python@v5 with: python-version: '3.12' - name: Install dependencies run: | set -x python -m pip install --upgrade pip pip install mypy types-requests pip install nicegui fastapi uvicorn yfinance polars pandas pydantic pyyaml pip list - name: Run mypy run: | echo "Running mypy on core modules..." mypy app/core app/models app/strategies app/services app/domain --ignore-missing-imports --show-error-codes --show-traceback echo "Type check completed successfully"