Files
familysync/.planning/phases/08-gitea-ci/08-DISCUSSION-LOG.md
T
Lucas Berger 982438dc10 style(13-03): apply Prettier formatting across repo
Mechanical reformat — no logic changes. 398 files changed, 19125
insertions(+), 16457 deletions(-). Prettier 3.8.4 with .prettierrc
(singleQuote:true, semi:true, tabWidth:2, trailingComma:all,
printWidth:100). Isolated per D-13-08 for reviewability.
2026-06-11 20:35:18 -04:00

75 lines
4.7 KiB
Markdown

# 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> | |
| Short SHA only | Immutable per-commit only | |
| latest only | Single moving tag | |
| semver from package.json | Version field + latest | |
| **latest + milestone short (custom)** | :latest + :<milestone>-<shortsha>, 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.