fix(fc2a): align CI with FabledRulebook — lint + short unit tests only

The CI failure resolving 'postgres' hostname was the symptom; the cause is
that the workflow violated FabledRulebook/forgejo.md's "CI philosophy —
lint + short unit tests only" rule. Integration tests against a real
Postgres are supposed to run locally via docker-compose, not in CI.

Changes:
- Marked 8 DB-dependent test files with @pytest.mark.integration:
  test_tag_service, test_importer, test_gallery_service, test_api_gallery,
  test_api_tags, test_api_settings, test_api_import_admin, test_maintenance.
- CI workflow drops the postgres/redis service containers and the alembic
  upgrade smoke step entirely.
- Pytest invocation in CI changes to `pytest -v -m "not integration"`.
- Added pytest marker registration to pyproject.toml.
- DB_PASSWORD and SECRET_KEY env vars retained because config.py reads
  them at import time even though unit tests don't actually use them
  (set to placeholder values).

What CI now runs:
- ruff check
- pytest on the 6 unit test files: test_slug, test_paths,
  test_migration_0002, test_thumbnailer, test_celery_smoke,
  test_tasks_register.
- npm install + npm run build

What CI no longer runs:
- alembic upgrade (no live DB)
- the 8 integration test files (these run locally via docker-compose)

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-05-14 15:23:07 -04:00
parent 80a5690740
commit 22bc24b6b6
10 changed files with 37 additions and 32 deletions
+8
View File
@@ -7,3 +7,11 @@ requires-python = ">=3.14"
[tool.setuptools.packages.find]
where = ["."]
include = ["backend*"]
[tool.pytest.ini_options]
# Per FabledRulebook/forgejo.md: CI runs lint + short unit tests only.
# Integration tests that need a real Postgres/Redis run locally via
# docker-compose; CI passes `-m "not integration"` to skip them.
markers = [
"integration: tests that require a real Postgres/Redis. Run locally via docker-compose, skipped in CI.",
]