docs: update summary.md for CI/CD session

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Bryan Van Deusen
2026-03-10 11:14:43 -04:00
parent 6c051fa59d
commit af9c540f6e
+17 -1
View File
@@ -12,7 +12,23 @@
> Include file-level details in the commit body when the change is non-trivial.
## Last Updated
2026-03-06Session invalidation on credential change (password reset + password change).
2026-03-10 — CI/CD optimization: custom runner base image, explicit label naming, pip caching, Node 22.
**CI/CD infrastructure overhaul:**
- `infra/Dockerfile.runner-base` (new): Ubuntu 24.04 base image with Python 3.12 (native, no PPA) and Node 22 LTS pre-installed. Tagged `py3.12-node22`. Eliminates the ~3-4 min deadsnakes PPA install that ran on every test job. Build/push command in file header.
- `infra/act-runner-config.yml`: added `runner.labels` section mapping `py3.12-node22``runner-base:py3.12-node22`. This is the authoritative label config — `GITEA_RUNNER_LABELS` env var is only honoured on first registration and was being ignored after `.runner` exists.
- `infra/runner-compose.yml`: removed redundant `GITEA_RUNNER_LABELS` env var (labels now owned solely by config.yml).
- `.forgejo/workflows/ci.yml`: all jobs changed from `runs-on: ubuntu-latest``runs-on: py3.12-node22`; removed deadsnakes Python install steps from test job; added `actions/cache@v3` for pip keyed on `hashFiles('pyproject.toml')`; bumped `node-version` 20 → 22.
- `Dockerfile`: bumped frontend build stage `node:20-alpine``node:22-alpine`.
- `.gitignore`: added `.claude/`, `settings.local.json`, `.vscodium/`.
**Runner label design:** Label name (`py3.12-node22`) matches the image tag, making the dependency contract explicit in workflow files. `ubuntu-latest` alias removed — it was opaque and implied a moving target.
**To activate on server (one-time):** copy `infra/act-runner-config.yml``/nfs/data/fabledsword/act_runner/config.yml`, delete `/data/.runner` in the runner container, restart the stack. Runner will re-register with the `py3.12-node22` label.
---
**Previous session (2026-03-06):** Session invalidation on credential change (password reset + password change).
**Session invalidation on credential change:**
- `models/user.py`: added `session_version: Mapped[int]` column (default 1). `Integer` import added.