Files
familysync/.planning/phases/08-gitea-ci/08-DISCUSSION-LOG.md
T

3.3 KiB

Phase 8: Gitea CI - Discussion Log

Audit trail only. Do not use as input to planning, research, or execution agents. Decisions are captured in CONTEXT.md — this log preserves the alternatives considered.

Date: 2026-06-11 Phase: 8-Gitea CI Areas discussed: Dev-stack bring-up in CI, Workflow topology & jobs, Docker image tag strategy, Failure artifacts & browser matrix


Dev-stack bring-up in CI

Option Description Selected
Bare processes + service MariaDB MariaDB as a Gitea service container; API as background pnpm dev:api with DEV_AUTH_BYPASS; Playwright webServer starts Vite. No docker-in-docker.
docker compose dev override Run docker-compose.yml + dev override inside the runner; adds image-build time + docker-in-docker.
Production image for harness Build prod image, run harness against API-served PWA on :3000; diverges from Phase 7 dev-server contract.

User's choice: Bare processes + service MariaDB Notes: Reuses the MariaDB service container already needed by the API-integration tests; matches the Phase 7 harness contract exactly.


Workflow topology & jobs

Option Description Selected
One file, parallel jobs Single workflow; PR→main runs fast-checks in parallel with integration + harness; push→main publishes.
Two files Separate ci.yml + publish.yml; cleaner split, duplicated setup.
One file, linear job Single sequential job; simplest, slowest feedback.

User's choice: One file, parallel jobs Notes: Fast feedback prioritized; minor setup duplication across jobs accepted.


Docker image tag strategy

Option Description Selected
latest + short SHA :latest + :
Short SHA only Immutable per-commit only
latest only Single moving tag
semver from package.json Version field + latest
latest + milestone short (custom) :latest + :-, e.g. v1.1-4303a1b

User's choice: latest + v1.1-4303a1b (milestone prefix + short SHA), confirmed in follow-up over a 3-tag variant and a no-milestone variant. Notes: Milestone string read from PROJECT.md/ROADMAP, not hardcoded; SHA tag immutable for rollback.


Failure artifacts & browser matrix

Option Description Selected
Upload on failure + both profiles iPhone/WebKit + Pixel/Chromium; upload traces/screenshots/videos on failure.
Upload on failure + Chromium only Pixel/Chromium only; faster, loses iOS-engine coverage.
Both profiles, no artifacts Full matrix, log-only failures.

User's choice: Upload on failure + both profiles Notes: Full mobile coverage + debuggable failures. reporter: 'github' may not render in Gitea — verify in runner probe, fall back if needed.


Claude's Discretion

  • Exact job names/step ordering, pnpm cache key, fast-checks split.
  • API launch mechanism (pnpm dev:api vs built node dist) as long as :3000 is reliably ready under DEV_AUTH_BYPASS.
  • Registry hostname / image repo path.

Deferred Ideas

  • ROADMAP status conflict (line 29 "completed" vs line 204 "Not started", no artifacts) — bookkeeping fix, not Phase 8 scope.