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
80 lines
2.5 KiB
YAML
80 lines
2.5 KiB
YAML
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 <registry>/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
|