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.
This commit is contained in:
Lucas Berger
2026-06-11 20:35:18 -04:00
parent 4bc0445173
commit 982438dc10
398 changed files with 19050 additions and 16382 deletions
+37 -35
View File
@@ -1,15 +1,15 @@
---
phase: 08-gitea-ci
plan: "01"
plan: '01'
subsystem: infra
tags: [gitea, ci, act_runner, github-actions, docker, playwright, mariadb, artifacts]
# Dependency graph
requires: []
provides:
- "Runner-probe workflow (.gitea/workflows/runner-probe.yml) confirming the Unraid act_runner environment"
- "Confirmed answers to all P-01..P-13 unknowns from 08-RESEARCH §Runner-Probe Checklist"
- "Registered act_runner + GITEA_REGISTRY_PAT repo secret (operator actions)"
- 'Runner-probe workflow (.gitea/workflows/runner-probe.yml) confirming the Unraid act_runner environment'
- 'Confirmed answers to all P-01..P-13 unknowns from 08-RESEARCH §Runner-Probe Checklist'
- 'Registered act_runner + GITEA_REGISTRY_PAT repo secret (operator actions)'
affects:
- 08-02-PLAN
- 08-03-PLAN
@@ -18,13 +18,13 @@ affects:
# Tech tracking
tech-stack:
added:
- "act_runner (Docker-executor mode, registered on git.bergerhouse.net)"
- "ChristopherHX/gitea-upload-artifact@v4 (Gitea-compatible artifact upload fork)"
- "actions/checkout@v4, actions/setup-node@v4 (resolved via github.com)"
- 'act_runner (Docker-executor mode, registered on git.bergerhouse.net)'
- 'ChristopherHX/gitea-upload-artifact@v4 (Gitea-compatible artifact upload fork)'
- 'actions/checkout@v4, actions/setup-node@v4 (resolved via github.com)'
patterns:
- "runner-probe-first: probe the runner environment before any real test/build/publish step"
- "healthcheck.sh --connect --innodb_initialized for MariaDB 11 readiness (not mysqladmin ping)"
- "ubuntu-latest runs-on label (runner advertises ubuntu-latest, not self-hosted)"
- 'runner-probe-first: probe the runner environment before any real test/build/publish step'
- 'healthcheck.sh --connect --innodb_initialized for MariaDB 11 readiness (not mysqladmin ping)'
- 'ubuntu-latest runs-on label (runner advertises ubuntu-latest, not self-hosted)'
key-files:
created:
@@ -32,25 +32,25 @@ key-files:
modified: []
key-decisions:
- "D-PROBE-01: runs-on must be ubuntu-latest (not self-hosted) — runner has no self-hosted label; all downstream ci.yml workflows (Plans 02-04) MUST use runs-on: ubuntu-latest"
- "D-PROBE-02: runner is Docker-executor mode (/.dockerenv present) — services: works; DB_HOST=mariadb in ci.yml"
- "D-PROBE-03: MariaDB service container works and is reachable on hostname mariadb; DB readiness must use healthcheck, NOT mysql CLI (not installed in runner image)"
- "D-PROBE-04: actions/cache@v4 is unreliable (timeout) — do NOT use cache in Plans 02/03; at most best-effort"
- "D-PROBE-05: Playwright WebKit + Chromium deps install cleanly (exit 0); Phase-7 harness is CI-feasible"
- "D-PROBE-06: ChristopherHX/gitea-upload-artifact@v4 works — plans 03/04 MUST use this fork, never actions/upload-artifact@v4"
- "D-PROBE-07: short SHA via ${GITHUB_SHA:0:7} produces 7 chars — D-04 publish tag expression confirmed valid"
- "D-PROBE-08: GITEA_REGISTRY_PAT deferred to Plan 04 (operator decision; PAT not exercised in probe)"
- 'D-PROBE-01: runs-on must be ubuntu-latest (not self-hosted) — runner has no self-hosted label; all downstream ci.yml workflows (Plans 02-04) MUST use runs-on: ubuntu-latest'
- 'D-PROBE-02: runner is Docker-executor mode (/.dockerenv present) — services: works; DB_HOST=mariadb in ci.yml'
- 'D-PROBE-03: MariaDB service container works and is reachable on hostname mariadb; DB readiness must use healthcheck, NOT mysql CLI (not installed in runner image)'
- 'D-PROBE-04: actions/cache@v4 is unreliable (timeout) — do NOT use cache in Plans 02/03; at most best-effort'
- 'D-PROBE-05: Playwright WebKit + Chromium deps install cleanly (exit 0); Phase-7 harness is CI-feasible'
- 'D-PROBE-06: ChristopherHX/gitea-upload-artifact@v4 works — plans 03/04 MUST use this fork, never actions/upload-artifact@v4'
- 'D-PROBE-07: short SHA via ${GITHUB_SHA:0:7} produces 7 chars — D-04 publish tag expression confirmed valid'
- 'D-PROBE-08: GITEA_REGISTRY_PAT deferred to Plan 04 (operator decision; PAT not exercised in probe)'
patterns-established:
- "Probe-before-build: all CI phase work starts with a non-destructive probe run to confirm runner unknowns"
- "No mysql CLI: DB readiness gating must use MariaDB service healthcheck or Node mysql2-based wait"
- "Gitea artifact upload: always ChristopherHX/gitea-upload-artifact@v4, never actions/upload-artifact@v4"
- 'Probe-before-build: all CI phase work starts with a non-destructive probe run to confirm runner unknowns'
- 'No mysql CLI: DB readiness gating must use MariaDB service healthcheck or Node mysql2-based wait'
- 'Gitea artifact upload: always ChristopherHX/gitea-upload-artifact@v4, never actions/upload-artifact@v4'
requirements-completed: [CI-01, CI-02]
# Metrics
duration: 30min (Tasks 1+2 authoring) + probe run ~5min
completed: "2026-06-11"
completed: '2026-06-11'
---
# Phase 08 Plan 01: Runner Probe Summary
@@ -75,17 +75,17 @@ completed: "2026-06-11"
These answers are the primary output of Plan 01. Plans 02, 03, and 04 MUST consume them.
| Probe | Question | Result | Implication |
|-------|----------|--------|-------------|
| P-03 | Runner mode | **Docker-executor** (`/.dockerenv` present) | `services:` works in all downstream jobs; `DB_HOST=mariadb` |
| P-05 | Service container spawn | **WORKS**`mariadb:11` started healthy (`Up (healthy) 3306/tcp`) | Use `services: mariadb` in ci.yml |
| P-06 | DB reachability via CLI | **INCONCLUSIVE**`mysql` CLI not installed in runner image (`command not found` for both `mariadb` and `127.0.0.1`); `mariadb` hostname resolves at Docker-network level | DB readiness gating in Plans 02/03 MUST NOT shell out to `mysql` CLI — use MariaDB healthcheck (`healthcheck.sh --connect --innodb_initialized`) and/or a Node `mysql2`-based wait; or explicitly install `mariadb-client` if a CLI step is required |
| P-08 | Action resolution | **WORKS**`actions/checkout@v4` and `actions/setup-node@v4` (node 22) cloned from github.com; first-run clone slow (~60-75 s each) but reliable | No local mirror needed; plan for slow cold starts |
| P-09 | `actions/cache@v4` | **UNRELIABLE** — restore timed out (`getCacheEntry failed: Request timeout`; Pitfall 7) | Do NOT use `actions/cache` in Plans 02/03; at most `continue-on-error: true` best-effort |
| P-10 | Playwright WebKit deps | **OK**`npx playwright install --with-deps webkit chromium` exits 0 (runs as root; no sudo/apt failure) | Phase-7 harness in CI is feasible; no extra apt workaround needed |
| P-11 | Artifact upload | **WORKS**`ChristopherHX/gitea-upload-artifact@v4` uploaded (Artifact ID 1, download URL returned) | Plans 03/04 MUST use this fork; `actions/upload-artifact@v4` is broken on Gitea |
| P-13 | Short SHA | **WORKS**`${GITHUB_SHA:0:7}` = `134d4db` (7 chars) | D-04 publish tag expression `git.bergerhouse.net/.../familysync:${GITHUB_SHA:0:7}` is valid |
| Security (T-08-01) | Secrets in probe log | **CLEAN** — probe references no secrets; log audit found no leak | PAT untouched in this plan |
| Probe | Question | Result | Implication |
| ------------------ | ----------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| P-03 | Runner mode | **Docker-executor** (`/.dockerenv` present) | `services:` works in all downstream jobs; `DB_HOST=mariadb` |
| P-05 | Service container spawn | **WORKS**`mariadb:11` started healthy (`Up (healthy) 3306/tcp`) | Use `services: mariadb` in ci.yml |
| P-06 | DB reachability via CLI | **INCONCLUSIVE**`mysql` CLI not installed in runner image (`command not found` for both `mariadb` and `127.0.0.1`); `mariadb` hostname resolves at Docker-network level | DB readiness gating in Plans 02/03 MUST NOT shell out to `mysql` CLI — use MariaDB healthcheck (`healthcheck.sh --connect --innodb_initialized`) and/or a Node `mysql2`-based wait; or explicitly install `mariadb-client` if a CLI step is required |
| P-08 | Action resolution | **WORKS**`actions/checkout@v4` and `actions/setup-node@v4` (node 22) cloned from github.com; first-run clone slow (~60-75 s each) but reliable | No local mirror needed; plan for slow cold starts |
| P-09 | `actions/cache@v4` | **UNRELIABLE** — restore timed out (`getCacheEntry failed: Request timeout`; Pitfall 7) | Do NOT use `actions/cache` in Plans 02/03; at most `continue-on-error: true` best-effort |
| P-10 | Playwright WebKit deps | **OK**`npx playwright install --with-deps webkit chromium` exits 0 (runs as root; no sudo/apt failure) | Phase-7 harness in CI is feasible; no extra apt workaround needed |
| P-11 | Artifact upload | **WORKS**`ChristopherHX/gitea-upload-artifact@v4` uploaded (Artifact ID 1, download URL returned) | Plans 03/04 MUST use this fork; `actions/upload-artifact@v4` is broken on Gitea |
| P-13 | Short SHA | **WORKS**`${GITHUB_SHA:0:7}` = `134d4db` (7 chars) | D-04 publish tag expression `git.bergerhouse.net/.../familysync:${GITHUB_SHA:0:7}` is valid |
| Security (T-08-01) | Secrets in probe log | **CLEAN** — probe references no secrets; log audit found no leak | PAT untouched in this plan |
### KEY DEVIATION for all downstream workflows
@@ -115,6 +115,7 @@ The runner advertises **`ubuntu-latest`** (and `ubuntu-24.04` / `ubuntu-22.04`),
### Auto-fixed Issues
**1. [Rule 1 - Bug] Fixed `runs-on: self-hosted` → `runs-on: ubuntu-latest`**
- **Found during:** Task 3 (probe run) — probe job stayed queued with no eligible runner
- **Issue:** The plan specified `runs-on: self-hosted` but the runner advertises `ubuntu-latest`/`ubuntu-24.04`/`ubuntu-22.04`, not the `self-hosted` label
- **Fix:** Changed `runs-on: self-hosted` to `runs-on: ubuntu-latest` in `.gitea/workflows/runner-probe.yml`; also updated the plan's `key_links.via` pattern to document the correct label
@@ -152,5 +153,6 @@ Plans 02-04 have everything they need from this probe:
No blockers for Plan 02 (test job authoring).
---
*Phase: 08-gitea-ci*
*Completed: 2026-06-11*
_Phase: 08-gitea-ci_
_Completed: 2026-06-11_