Commit Graph

177 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
7c0e5400f7 add more tools to setup copilot 2026-03-12 21:14:31 -04:00
Georges-Antoine Assi
78ff3c1e54 add copilot setup steps 2026-03-12 20:58:46 -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
455252d4b9 update issue template 2026-01-12 10:01:07 -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
4747478e98 fix pr template 2025-12-09 13:41:25 -05:00
zurdi
7919b2b790 Implement feature X to enhance user experience and optimize performance 2025-12-04 12:30:05 +00:00
zurdi
b70c23e178 fix: update pull request template for clarity and consistency 2025-11-26 12:42:09 +00:00
Georges-Antoine Assi
28e1db8d2b add selfshst badge to readme 2025-11-21 23:37:09 -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
649a6dc7f7 Remove link from aikido report 2025-08-11 09:18:39 -04:00
zurdi
7756f0de31 trim logotipo resources 2025-07-23 23:05:38 +00:00
Georges-Antoine Assi
0dc61a2052 run trunk 2025-07-23 11:01:55 -04:00
milktoastrat
69ebecfe6a Update logos 2025-07-23 09:41:11 -04:00
milktoastrat
6227920354 Update logos 2025-07-22 23:56:15 -04:00
Georges-Antoine Assi
e9d4c13efe switch aikido badge to png 2025-07-20 09:39:23 -04:00