Files
Odoo-Modules/fusion_accounting/docs/superpowers/specs/2026-04-18-ci-deferred.md
gsinghpal f0577c1788 ci(fusion_accounting): add CI workflow scaffold + Phase 0 deferral note
Workflow structure is complete (path filters, matrix, services).
The 'Install Odoo 19' step is a TODO placeholder — the reproducible
Odoo-19 build environment is deferred to Phase 1 CI hardening.
Current Phase 0 test workflow is manual via ssh odoo-westin.

Made-with: Cursor
2026-04-19 01:18:36 -04:00

1.6 KiB

CI Currently Manual (Phase 0 note)

The CI yaml at .gitea/workflows/fusion_accounting_ci.yml (or .github/) describes the target workflow, but the Install Odoo 19 step is a TODO placeholder in Phase 0 because the repo does not yet pin a reproducible Odoo 19 build environment for CI runners.

Current workflow (Phase 0)

Tests are run manually via the dev server:

ssh odoo-westin "docker exec odoo-dev-app odoo -d westin-v19 \
  --test-tags post_install --stop-after-init --no-http \
  -c /etc/odoo/odoo.conf -u <sub_module> \
  --log-handler=odoo.tests:INFO"

This pattern is embedded in the Phase 0 plan's per-task verification steps.

To activate CI (deferred to Phase 1)

Three realistic approaches:

  1. Dockerfile + DinD: Build a reproducible Odoo-19 image in the repo (e.g. docker/odoo-19.Dockerfile). CI runner uses Docker-in-Docker. Slowest to boot, fully reproducible.
  2. Self-hosted runner on odoo-westin: Register a runner on the existing dev box. Tests run against a throwaway DB (per-CI-run). Fastest; ties CI to odoo-westin availability.
  3. Pip-installable Odoo: pip install odoo==19.0.* (if Odoo publishes wheels that match the Enterprise-aware build). Simplest if it works.

Pick when Phase 1 (Bank Reconciliation) begins — Phase 1 benefits from automated test runs because its scope is broader than Phase 0's.

What the current yaml gets right

  • Path filters only trigger on fusion_accounting* changes
  • Matrix tests each sub-module independently
  • Python deps (anthropic, openai) preinstalled
  • PostgreSQL 15 service wired
  • Odoo stdout/stderr captured at INFO level to see test results