Commit Graph

109 Commits

Author SHA1 Message Date
Georges-Antoine Assi
93922faf91 Key Docker Hub namespace off push credential
Derive the Docker Hub namespace from DOCKER_NAMESPACE, falling back to
DOCKER_USERNAME and then github.repository_owner, so forks whose GitHub
owner name differs from their writable Docker Hub namespace can push.
GHCR is unaffected.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-24 11:43:03 -04:00
Georges-Antoine Assi
da7658a4aa Clarify GHCR-only preview build PR comment
Rename the comment step to reflect that PR builds only push to GHCR,
add a note explaining the hardcoded registry, and inline the image
string into the updateComment call.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-24 10:26:30 -04:00
Ian Mancini
967c146fe9 feat: add option to push experimental image to both registries 2026-06-21 20:40:38 -03:00
Ian Mancini
0f17e70350 feat: add action option to push test images to ghcr 2026-06-21 17:38:09 -03:00
Ian Mancini
7f129b9cf0 fix: use repository owner to allow forks to push images to Docker Hub 2026-06-21 16:28:34 -03:00
Georges-Antoine Assi
26cf4b36f8 Scope test-user grant to the romm_test namespace
Addresses review feedback: granting ALL PRIVILEGES on *.* is overly broad,
especially against a shared DB instance. A database-level grant on the
`romm\_test%` wildcard pattern still lets the user CREATE the per-worker
databases (romm_test_gw0, ...) needed by pytest-xdist, while confining it to
that namespace — verified that out-of-namespace CREATE DATABASE is denied.

PostgreSQL needs no equivalent change: its CI service user (POSTGRES_USER)
is the container superuser.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-19 21:34:46 -04:00
Georges-Antoine Assi
02815ec403 Run backend tests in parallel with pytest-xdist
Add pytest-xdist and run the backend test suite across multiple workers
(`-n 4` in CI). Each worker gets its own database so the autouse
`clear_database` fixture can't wipe rows another worker is mid-test with:

- Rootdir `backend/conftest.py` sets a per-worker `DB_NAME`
  (`romm_test_gw0`, ...) before any app module is imported, so each
  worker's engine binds to its own database.
- `tests/conftest.py` creates the per-worker database on demand (mariadb/
  mysql and postgresql paths) just before migrations run.
- The test user's grant is widened to `*.*` (setup.sql + CI) so it can
  `CREATE DATABASE` for the workers.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-19 21:02:47 -04:00
Georges-Antoine Assi
1e78a2ed59 Merge branch 'master' into claude/exciting-heisenberg-61PF9 2026-06-18 19:59:00 -04:00
zurdi
0450ab7887 chore: remove lint job from frontend workflow 2026-06-17 10:04:47 +02:00
zurdi
8f879d0b59 chore: update Node.js version to 24.16 across workflows and Dockerfile, and enhance package.json with npm version specification 2026-05-26 09:23:47 +00:00
Claude
95958b6687 test: integrate Hypothesis property-based testing for backend
Add Hypothesis to the test dependency group with CI/dev profiles, and
introduce property-based tests for high-value pure functions: crc32_to_hex,
filesystem and LaunchBox filename sanitization, LaunchBox metadata parsers,
and ROM filename tag parsing.

https://claude.ai/code/session_01GCTFmzuhvqNbSAfw3rGxmj
2026-05-21 16:40:04 +00:00
zurdi
df8f6178ef chore(frontend): set up vitest + storybook play() tests and align CI
Add Vitest 4 with happy-dom, @vue/test-utils, and a single
test/storybook.test.ts that auto-discovers every story under
src/v2/lib and runs its play() via composeStories — no Playwright,
just composition-based interaction tests. 89 stories now smoke-pass
in CI.

Scripts: lint:fix (auto-fix), lint (now scoped to ./src/v2; v1 is
frozen), lint:all (legacy sweep), test, test:watch, test:ui,
storybook:test.

eslint.config.js gets argsIgnorePattern: "^_" so unused-by-design
parameters can use the underscore convention.

CI: new frontend.yml runs lint, test, build in parallel on
frontend/** changes; typecheck.yml bumped to Node 22 with cached
npm ci. Existing typecheck job preserved for branch protection.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-28 11:52:44 +00:00
Georges-Antoine Assi
f2e8e337b2 Merge branch 'master' into save-sync 2026-04-05 21:47:53 -04:00
Georges-Antoine Assi
7c41fb5bac revert fs_name sibling roms 2026-04-05 17:57:48 -04:00
Georges-Antoine Assi
5da813c871 add perms to copilot setup step 2026-04-03 09:47:05 -04:00
zurdi
a18fd9c459 fix: remove conditional check for mariadb connectors installation 2026-03-20 13:43:47 +00:00
nendo
51c990dcba fix(ci): install mariadb connectors on all runners
uv sync installs sqlalchemy[mariadb-connector] regardless of which
database is being tested, so libmariadb-dev must be present on all
runners. The postgres migration job and pytest postgresql matrix were
missing this step.
2026-03-16 11:40:39 +09:00
Georges-Antoine Assi
2beba3d141 move to corrrect folder 2026-03-12 21:15:08 -04:00
Georges-Antoine Assi
b9e3ae6be3 add perm to job itself 2026-03-09 23:09:05 -04:00
Georges-Antoine Assi
30db3725f4 add comment at the beginnig 2026-03-09 23:02:52 -04:00
Georges-Antoine Assi
bdd5f4b078 add PR label to trigger preview build 2026-03-09 22:59:31 -04:00
Georges-Antoine Assi
2f7f6f65e7 run tests against postgres matrix 2026-03-08 10:20:09 -04:00
Georges-Antoine Assi
e79204ee4a continue-on-error: true in pytest publish report step 2026-02-03 09:22:09 -05:00
Georges-Antoine Assi
5f58deb3ec set more env vars 2026-01-26 21:50:41 -05:00
Georges-Antoine Assi
08839b85c2 add missing env var 2026-01-26 21:40:07 -05:00
Georges-Antoine Assi
958a337ce2 tweak test in migration file 2026-01-26 21:32:03 -05:00
Georges-Antoine Assi
2576ba6bbc Add workflow to run migrations on PR 2026-01-26 21:30:01 -05:00
Georges-Antoine Assi
743bddcb23 add valkey to pytest ci 2026-01-10 09:22:46 -05:00
Georges-Antoine Assi
41cf73bbb7 changes from bot review 2026-01-01 11:32:14 -05:00
Georges-Antoine Assi
bf2413cc73 add perm to action 2025-11-18 12:08:50 -05:00
Georges-Antoine Assi
8eadab6672 open PR when running hltb update 2025-11-18 12:05:31 -05:00
Georges-Antoine Assi
2be1bab224 changes from bot review 2025-11-17 15:46:14 -05:00
Georges-Antoine Assi
8d91362a24 cahgnes from self review 2025-11-17 15:35:08 -05:00
Georges-Antoine Assi
95c506aec0 Add github action to update HLTB API url 2025-11-17 15:27:48 -05:00
Jan van Brügge
06c29119f3 ci: Also check for integrity field in lockfile lint job 2025-10-01 15:12:03 +01:00
Georges-Antoine Assi
91fb6f6f23 initialize field 2025-09-23 18:23:08 -04:00
Georges-Antoine Assi
92ca3d899c pin docker uses to immutable versions 2025-09-18 10:02:54 -04:00
Georges-Antoine Assi
24c0b1836b add rc to valid semver 2025-07-19 10:41:44 -04:00
Georges-Antoine Assi
2e047e41ce actually generate coverage file 2025-07-06 09:32:38 -04:00
Georges-Antoine Assi
7cdc42e307 use coverage from bckend 2025-07-06 09:16:37 -04:00
Georges-Antoine Assi
b797e63fdf augment pytest with coverage 2025-07-05 23:20:52 -04:00
Georges-Antoine Assi
d30e1cfa91 Apply suggestion from @adamantike
Co-authored-by: Michael Manganiello <adamantike@users.noreply.github.com>
2025-07-04 21:22:35 -04:00
Georges-Antoine Assi
e8f8f1621c complete migration to uv 2025-07-04 09:54:04 -04:00
Michael Manganiello
f96adeeaee misc: Upgrade to Python 3.13
Small changes to upgrade Python to version 3.13, and fixes based on a
`pyupgrade` run using the `--py313-plus` flag.
2025-07-03 23:37:00 -03:00
Georges-Antoine Assi
5f21d01f13 fix bug 2025-04-05 23:16:51 -04:00
Georges-Antoine Assi
89d667836c add i18n workflow 2025-04-05 23:12:03 -04:00
Georges-Antoine Assi
7392b2e595 fix typo 2025-03-30 15:18:03 -04:00
Georges-Antoine Assi
b0b5362093 use branch as label and checkout 2025-03-29 10:42:30 -04:00
Georges-Antoine Assi
8ff52b2cda Add github action to build experimental docker images 2025-03-28 22:07:15 -04:00
zurdi
454a5c7d2f feat: enhance build workflow to validate SemVer tags and trigger documentation and website builds on release 2025-02-26 12:23:46 +00:00