- Changed all jobs from 'runs-on: docker' to 'runs-on: [linux, docker]'
to match ci.yaml pattern and runner labels configuration
- Removed unnecessary docker.io package from deploy job since Docker
commands run on remote SSH host, not inside CI container
- Aligned with Forgejo runner config having both 'linux' and 'docker' labels
Forgejo Actions requires env to be under container: block, not at job level.
This fixes:
- Unknown Property env
- Unknown Property steps
- Unknown Variable Access env
- Fix return type annotation for get_default_premium_for_product
- Add type narrowing for Weight|Money union using _as_money helper
- Add isinstance checks before float() calls for object types
- Add type guard for Decimal.exponent comparison
- Use _unit_typed and _currency_typed properties for type narrowing
- Cast option_type to OptionType Literal after validation
- Fix provider type hierarchy in backtesting services
- Add types-requests to dev dependencies
- Remove '|| true' from CI type-check job
All 36 mypy errors resolved across 15 files.
- Remove '|| true' from CI type-check job to enforce strict checking
- Begin type narrowing pattern in units.py with _typed property accessors
- Document all 42 type errors across 15 files in roadmap backlog
- Priority: medium, estimated 4-6 hours to complete
Type errors fall into categories:
- Union types not narrowed after __post_init__ coercion
- float() on object types
- Duplicate method definitions
- Provider interface type mismatches
- BacktestSettingsRepository.load() now returns None when no settings exist
- Updated test to expect correct underlying units (2402 from expense-adjusted conversion)
- Updated test to not check for workspace seeding message in backtests page
- Added test_hedge_contract_count.py and test_backtest_settings.py to CI test suite
- Build job now depends on lint and test passing
- Set APP_ENV=test in test job to use Turnstile test keys
- Remove empty lines between steps in build job
- Add explicit 'Checkout' step name for clarity
- Add DATABENTO_API_KEY secret to deploy job environment
- Add DATABENTO_API_KEY to .env file creation in deploy script
- Add databento to test and type-check job dependencies
The test job runs tests that import DatabentoHistoricalPriceSource,
and type-check analyzes app/services/backtesting/databento_source.py.
Both need the databento package installed.
The job containers cannot resolve 'forgejo' Docker hostname.
Added 'options: --add-host=forgejo:10.100.0.2' to all container blocks.
This adds an entry to /etc/hosts mapping forgejo to the reachable IP.
The runner container cannot resolve 'forgejo' Docker hostname.
Set GITHUB_SERVER_URL to the accessible URL (10.100.0.2:3000).
- Add FORGEJO_URL env var (defaults to http://10.100.0.2:3000)
- Override GITHUB_SERVER_URL for checkout action
- Can be configured via vars.FORGEJO_URL in Forgejo settings
The actions/checkout@v4 action requires Node.js, but python:3.12-slim doesn't include it.
Using catthehacker/ubuntu:act-latest which has both Node.js and Python support.
- Update ci.yaml to use act-compatible image
- Update deploy.yaml to use act-compatible image
- Use actions/setup-python@v5 for Python installation
- Fix registry URL format for Forgejo (host:port/owner/repo)
- Create deploy-forgejo.sh with correct env variables
- Rename CI variables from GitLab CI format to Forgejo/GitHub format
- Simplify workflow structure
- Add proper error handling in deploy script
- Fix SSH key permissions (chmod 600)
- Add ssh-keyscan to avoid StrictHostKeyChecking issues