[ADD] ci: CI de Forgejo, bots y pre-commit en todo el repo #19

Merged
snt merged 7 commits from 18.0-ci-forgejo-bots into 18.0 2026-10-04 17:42:04 +00:00

7 commits

Author SHA1 Message Date
GitHub Copilot
87c2d1d1d3
[IMP] ci: test the ISOLATE addons in their own database
Some checks failed
CI / lint (pull_request) Successful in 31s
CI / test (pull_request) Failing after 11m29s
CI / review (pull_request) Has been skipped
website_sale_disable_cart removes the cart from every website once
installed, which breaks website_membership_signup_required when CI installs
everything together. The repo is shared by clients that never install them
together: run_tests.py now tests each ISOLATE addon in its own database,
after the rest, and ci.yml isolates website_sale_disable_cart.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-04 15:04:56 +02:00
GitHub Copilot
ca526d55cc
[FIX] account_invoice_triple_discount_readonly: tests for 18.0 purchases
In 18.0 purchase.order.line uses purchase.triple.discount.mixin, not the
triple.discount.mixin this addon patches, so the purchase tests checked 16.0
behaviour. test_purchase_order now checks the 18.0 one plus what matters
here: the bill created from the PO keeps discount1..3, and editing one of
them on the bill keeps the others. test_triple_discount_mixin runs on an
invoice line, and no longer expects the values of the previous test.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-04 15:04:54 +02:00
GitHub Copilot
9e05a279d7
[FIX] website_sale_lazy_loading: give the test products their shop order
Created in one batch, every product got the same website_sequence (MAX + 5,
read before the insert) and the shop breaks the tie by id desc, so the
listing came out backwards and the page assertions failed.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-04 15:04:53 +02:00
GitHub Copilot
1960f40301
[FIX] website_sale_aplicoop: activate the languages the tests use
The request env of the tests is in es_ES (and eu, ca, gl, pt, fr, it in the
multilang ones), but a fresh database such as the CI's only has en_US active
and env.lang raises "Invalid language code". The tests now activate them,
so the multilang cases run instead of being skipped.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-04 15:04:50 +02:00
GitHub Copilot
fbd43bb459
[REF] all: pass pre-commit on the whole repo
Some checks failed
CI / lint (pull_request) Successful in 33s
CI / test (pull_request) Failing after 9m29s
CI / review (pull_request) Has been skipped
Needed for the lint job of the CI to go green. Mostly automatic hook
fixes (black, isort, prettier, pyupgrade, autoflake, whitespace). By hand:

- flake8: two unused imports, an ambiguous variable name `l`.
- pylint-odoo mandatory: manifest keys equal to their default value
  (installable, application, data, external_dependencies).
- end-of-file-fixer skips *.patch too, like trailing-whitespace: the
  upstream patches stay as git format-patch wrote them.

No behaviour change.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-04 14:34:58 +02:00
GitHub Copilot
d9d9e8be2d
[ADD] ci: Forgejo Actions CI and Claude bots ported from ecocentral
Same system as ecocentral-18 (see its docs/CI-CD.md):

- ci.yml: lint (pre-commit), test (tools/ci/run_tests.py, OCA-style
  two-phase install) and review (PR bot, after lint and test).
- issue-bot.yml: the issue bot answers issues or opens a PR on bot/issue-N.
- pr-bot.yml: review when WIP is removed or the i18n label is added.
- .gitea/issue-bot.md: context for the bots; this repo is shared by
  several clients.

The bot scripts are copies of ecocentral's. Only the defaults differ (repo,
token and state files, i18n languages es,eu,ca,gl) along with the [I18N]
commit message and the references to the runner's sources.txt.

The jobs run on a second forgejo-runner registration (CriptoMart org) on
ecocentral's runner machine, sharing its image, mounts and cache. The
runner files (Dockerfile, update.sh, sources.txt) live in ecocentral.
Specific to this repo:

- ODOO_SRC_SKIP: the runner's /odoo-src/18.0 holds a clone of addons-cm,
  so test skips it and checks the PR checkout instead.
- BOT_BASE_BRANCH "18.0": the repo's default branch is 16.0.
- test PostgreSQL on port 54330: ecocentral's runs on 54329 and a test job
  from each repo can run at the same time.

The lint job fails until the repo is cleaned up with
pre-commit run --all-files.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-04 14:34:58 +02:00
GitHub Copilot
fad510f69e
[FIX] pre-commit: do not strip trailing whitespace from patches
The blank context lines of a diff are a single space: stripping it breaks
pos_payment_method_cashdro_fix/upstream/*.patch.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-04 14:34:58 +02:00