feat(makefile): add remote-warmup — clear + warm cache after deploy
A `reset --hard` content deploy leaves Grav's compiled-Twig/page cache stale, so the first visitor pays the recompile. `remote-warmup` clears the cache then crawls the public site (homepage + trips listing + every trip page linked from it) to pre-render pages. Grav has no native warmup command, so it's an HTTP crawl — which also doubles as a smoke test (non-2xx pages flagged). Wired into REMOTE_TARGETS (-test/-prod variants) and added as the final step in both deploy-cycle.md phases. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01RDS6t8wcpbwKvvrxykVQ5K
This commit is contained in:
@@ -73,8 +73,17 @@ make remote-upgrade-grav-test # 2. gpm self-upgrade (rewrites sche
|
||||
make remote-update-plugins-test # 3. gpm update the plugins.txt set (auto-applies deploy/patches/)
|
||||
make remote-gpm-install-test PKG=git-sync # 4. EXPLICITLY (re)install each remote-only plugin
|
||||
make remote-apply-env-test # 5. re-deploy the env override (not synced; gone after install)
|
||||
make remote-warmup-test # 6. clear + warm cache — a reset deploy leaves it stale
|
||||
```
|
||||
|
||||
> **Always finish a deploy with `remote-warmup-<env>`** — even a content-only
|
||||
> deploy. A `reset --hard` (step 1) changes files under Grav without going
|
||||
> through it, so the compiled-Twig/page cache is stale and the first visitor
|
||||
> eats the recompile. `remote-warmup` clears the cache, then crawls the public
|
||||
> pages (homepage + trips listing + every trip page linked from it) to
|
||||
> pre-render them. Grav has no native warmup command — this is an HTTP crawl, so
|
||||
> it also doubles as a smoke test (a non-2xx on any page is flagged loudly).
|
||||
|
||||
Why each matters:
|
||||
- **Step 3** re-applies `deploy/patches/*.patch` automatically (it chains `remote-apply-plugin-patches`). GPM install/update lays down **pristine** third-party plugins, wiping local fixes to git-ignored `user/plugins/` — the patch step restores them. Content pulls (step 1) do **not** touch `plugins/`, so the patch only needs re-applying after a GPM op, not after every sync. Run `make remote-apply-plugin-patches-test` standalone if you ever GPM-install outside this sequence. Requires the `patch` tool on the server. See `deploy/patches/README.md`.
|
||||
- **Step 4** is non-optional even if git-sync "was already there" — remote-only plugins are not in `plugins.txt`, so nothing in steps 1–3 restores them. If the code is missing, the plugin is inert despite valid config.
|
||||
@@ -111,6 +120,7 @@ make remote-upgrade-grav-prod
|
||||
make remote-update-plugins-prod
|
||||
make remote-gpm-install-prod PKG=git-sync
|
||||
make remote-apply-env-prod
|
||||
make remote-warmup-prod # clear + warm cache; also HTTP-smokes public pages
|
||||
# ── smoke checklist (same as test) ──
|
||||
make remote-git-sync-enable-prod
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user