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:
@@ -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_
|
||||
|
||||
Reference in New Issue
Block a user