name: fusion_accounting CI on: push: paths: - 'fusion_accounting/**' - 'fusion_accounting_core/**' - 'fusion_accounting_ai/**' - 'fusion_accounting_migration/**' - '.gitea/workflows/fusion_accounting_ci.yml' pull_request: paths: - 'fusion_accounting/**' - 'fusion_accounting_core/**' - 'fusion_accounting_ai/**' - 'fusion_accounting_migration/**' jobs: test: # NOTE: This workflow assumes a self-hosted runner (or Docker-in-Docker) # that provides an Odoo 19 install. Adjust the `runs-on` and # `Install Odoo 19` step to match Nexa's environment. runs-on: ubuntu-latest services: postgres: image: postgres:15 env: POSTGRES_USER: odoo POSTGRES_PASSWORD: odoo POSTGRES_DB: postgres ports: ['5432:5432'] options: --health-cmd pg_isready --health-interval 10s strategy: fail-fast: false matrix: sub_module: - fusion_accounting_core - fusion_accounting_ai - fusion_accounting_migration steps: - uses: actions/checkout@v3 - name: Set up Python 3.11 uses: actions/setup-python@v4 with: python-version: '3.11' - name: Install AI client deps run: | pip install --break-system-packages anthropic openai - name: Install Odoo 19 run: | # TODO(Phase 1 CI hardening): align with Nexa's Odoo 19 source-of-truth. # Option A: pull the same image used at odoo-westin (docker pull /odoo:19) # Option B: odoo-bin pip install from the pinned Odoo 19 tag # Option C: host a self-hosted runner on odoo-westin with Odoo pre-installed echo "TODO: install Odoo 19 here" exit 1 # fail loudly until this step is implemented - name: Stage fusion sub-modules in addons-path run: | mkdir -p /tmp/addons cp -r fusion_accounting fusion_accounting_core fusion_accounting_ai fusion_accounting_migration /tmp/addons/ - name: Install + Test ${{ matrix.sub_module }} run: | createdb -h localhost -U odoo fusion_test_${{ matrix.sub_module }} odoo --addons-path=/tmp/addons \ -d fusion_test_${{ matrix.sub_module }} \ -i ${{ matrix.sub_module }} \ --test-tags post_install \ --stop-after-init \ --without-demo=all \ --log-handler=odoo.tests:INFO env: PGPASSWORD: odoo