75 lines
3.3 KiB
Markdown
75 lines
3.3 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.
|