Commit graph

13 commits

Author SHA1 Message Date
f66189cfd6 fix(ci): seed test data before booting the server
Some checks failed
Test / vitest (push) Successful in 11m17s
Test / playwright (push) Failing after 6m48s
Test / visual (push) Failing after 6m41s
Test / Notify on failure (push) Successful in 2s
The runner's Mongo is empty per run, so any e2e test that referenced
seeded members (riley.johnson, etc.) or tags failed with 404 from
loginAsMember or 'no tags visible'. Run seed-all.js + seed-tags.js
between Mongo readiness and 'npm run build'.
2026-05-01 10:13:24 +01:00
f428cbb219 fix(ci): reuse existing server + downgrade upload-artifact to v3
Some checks failed
Test / playwright (push) Failing after 13m11s
Test / vitest (push) Successful in 11m11s
Test / visual (push) Failing after 12m7s
Test / Notify on failure (push) Successful in 2s
Playwright's webServer config tried to spin up its own server in CI
('reuseExistingServer: !process.env.CI' = false), but the workflow
already started one manually — port 3000 was busy and Playwright
errored before any test ran. Set reuseExistingServer: true always:
Playwright reuses whatever's responsive and only runs the command
when nothing is.

Forgejo doesn't support actions/upload-artifact@v4 (GHES-not-supported
error). Downgrade to @v3.
2026-05-01 09:40:24 +01:00
f05c1f6d40 fix(ci): attach Mongo to the runner container's network
Some checks failed
Test / vitest (push) Successful in 11m11s
Test / playwright (push) Failing after 10m8s
Test / visual (push) Failing after 9m2s
Test / Notify on failure (push) Successful in 2s
The Forgejo runner is itself a container (visible in 'docker ps' from
inside the job: GITEA-ACTIONS-TASK-N_WORKFLOW-Test_JOB-playwright).
'--network host' for Mongo binds to the outer Docker host's network
namespace, which the runner container can't see — that's why
mongodb://localhost:27017 from the Nuxt server returned ECONNREFUSED.

Drop --network host. Instead, after starting Mongo, look up the
runner container's own network via 'docker inspect $HOSTNAME' and
attach Mongo to it. MONGODB_URI now references the container by
name (mongodb://mongo-ci:27017/...).
2026-05-01 09:08:21 +01:00
0985f6acb1 fix(ci): wait for Mongo via docker exec mongosh, not nc
Some checks failed
Test / vitest (push) Successful in 11m17s
Test / playwright (push) Failing after 10m2s
Test / visual (push) Failing after 10m5s
Test / Notify on failure (push) Successful in 3s
The Forgejo runner image doesn't ship netcat — 30 retries of
'sh: 1: nc: not found' just burned the timeout. Use mongosh from
inside the container; no host-side tooling needed.
2026-05-01 08:29:00 +01:00
43eda6db04 fix(ci): clean up leftover mongo-ci container before starting
Some checks failed
Test / vitest (push) Successful in 11m8s
Test / playwright (push) Failing after 9m4s
Test / visual (push) Failing after 8m18s
Test / Notify on failure (push) Successful in 2s
Previous run's container persisted across CI runs (runner shares the
host Docker daemon), so 'docker run --name mongo-ci' hit a name
conflict. 'docker rm -f mongo-ci || true' at the start of the step
makes it idempotent.
2026-05-01 08:00:40 +01:00
386cb7e4b2 fix(ci): use --network host for Mongo + add diagnostics
Some checks failed
Test / vitest (push) Successful in 11m11s
Test / playwright (push) Failing after 7m21s
Test / visual (push) Failing after 7m40s
Test / Notify on failure (push) Successful in 2s
Wait-for-Mongo timed out at 30s after Start-MongoDB succeeded — typical
Docker-in-Docker symptom where -p port mapping binds to a network the
runner's node process can't see. --network host puts Mongo in the
runner's network namespace so localhost:27017 reaches it.

Also dump 'docker ps' after start and 'docker logs mongo-ci' on failure
so the next-step debugging isn't blind.
2026-05-01 07:36:11 +01:00
a797f8e17c fix(ci): start MongoDB explicitly via docker run
Some checks failed
Test / vitest (push) Successful in 11m12s
Test / playwright (push) Failing after 7m43s
Test / visual (push) Failing after 7m39s
Test / Notify on failure (push) Successful in 2s
The Forgejo runner isn't honoring the 'services:' block — the playwright
job booted the server cleanly but every Mongo query returned ECONNREFUSED
on 127.0.0.1:27017. Replace 'services:' with an explicit 'docker run -d'
step + nc-based readiness wait.
2026-05-01 07:03:16 +01:00
16aaeddcee fix(ci): set OIDC_COOKIE_SECRET to satisfy production-mode bundle
Some checks failed
Test / vitest (push) Successful in 11m7s
Test / playwright (push) Failing after 10m4s
Test / visual (push) Failing after 10m25s
Test / Notify on failure (push) Successful in 3s
server/utils/oidc-provider.ts throws at module-load when
OIDC_COOKIE_SECRET is unset and NODE_ENV is 'production'. Vite
substitutes process.env.NODE_ENV as a literal at build time, so
'production' is baked into the .output bundle regardless of the
runtime NODE_ENV=development env. Setting OIDC_COOKIE_SECRET
clears the throw; the value isn't used for real OIDC traffic
in CI since no test exercises the OIDC interaction routes.
2026-05-01 06:40:43 +01:00
d1b5107478 chore(ci): capture server stderr + dump on failure
Some checks failed
Test / vitest (push) Successful in 11m7s
Test / playwright (push) Failing after 10m1s
Test / visual (push) Failing after 9m51s
Test / Notify on failure (push) Successful in 2s
Backgrounding 'node .output/server/index.mjs &' swallowed startup
crashes — failures presented as a useless 30s 'Wait for server'
timeout. Pipe stderr to a log file and cat it on failure so the
next crash is one click away.
2026-05-01 00:23:14 +01:00
9ddb45c4d8 fix(ci): add stub RESEND_API_KEY + HELCIM_API_TOKEN to satisfy validate-env
Some checks are pending
Test / vitest (push) Waiting to run
Test / playwright (push) Blocked by required conditions
Test / Notify on failure (push) Blocked by required conditions
Test / visual (push) Blocked by required conditions
server/plugins/validate-env.js process.exit(1)s on boot when these
are missing — the playwright job's 'Start server' step backgrounds
the process and returns instantly, so the crash was silent until
'Wait for server' timed out at 30s.

Stub values are safe: ALLOW_DEV_TEST_ENDPOINTS=true short-circuits
the Resend call in invite.post.js, and Helcim API calls are mocked
at the page.route level in join-flow.spec.js.
2026-05-01 00:21:17 +01:00
f62fd4f586 fix(ci): set ALLOW_DEV_TEST_ENDPOINTS=true for e2e + visual jobs
Some checks failed
Test / vitest (push) Successful in 11m6s
Test / playwright (push) Failing after 9m40s
Test / visual (push) Failing after 11m41s
Test / Notify on failure (push) Successful in 3s
Without this flag, server/middleware/03.rate-limit.js applies the
100-req/60s general limit to /api/dev/test-login and trips during
parallel e2e runs. The invite.post.js dev short-circuit also
depends on this env var to skip the Resend call (no RESEND_API_KEY
in CI).
2026-04-30 23:59:15 +01:00
fb25e72215 Huge bunch of UI/UX improvements and tweaks!
Some checks failed
Test / vitest (push) Successful in 10m36s
Test / playwright (push) Failing after 9m23s
Test / visual (push) Failing after 9m13s
Test / Notify on failure (push) Successful in 2s
2026-04-06 16:17:12 +01:00
4daec9b624 fix: move CI workflow from GitHub Actions to Forgejo Actions 2026-04-04 17:03:54 +01:00