mirror of
https://github.com/kevinveenbirkenbach/computer-playbook.git
synced 2026-11-10 12:47:04 +00:00
Per-role Playwright runs no longer call `npm install` against registry.npmjs.org on every invocation. A new `01_setup.yml` runs once per host/version, populates `_shared/node_modules/` inside the Playwright container, and stamps the installed version in `.installed-version`. Each `02_run_one.yml` mounts that tree read-only at `/e2e/node_modules` and the container command becomes `npx --no-install playwright test`. This eliminates the npmjs.org TLS-handshake flake that took out the keycloak playwright in a recent variant-2 update, saves ~4 s per role, and gives version bumps a single rebuild point. Three retry layers cover transient registry failures: Ansible (3× with 5 s delay), npm fetch (5× with 10-60 s backoff), and image pull (3×). Stage-base / shared-dir / stamp / node_modules paths live as SPOT constants in `vars/main.yml` so call sites never reconstruct them. Renames `tasks/run_one.yml` → `tasks/02_run_one.yml` (and adds `01_setup.yml`) to make the include order visible by filename; updates cross-references in `AGENTS.md`, the two `docs/contributing/...` pages, `dump_disk_diagnostics.sh`, and the lint test. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>