Adopt the Hub's Reusable deploy-site-task.yml Workflow - #103
Conversation
Replaces this repo's carried deploy-site-task.yml with the hub-hosted reusable workflow, pinned at the released 2.0.448 tag. The new .github/actions/deploy/action.yml hook carries this repo's own build, prune, and verify logic for the hub task's three modes. Prune is a deliberate no-op: OPERATIONS.md already states that the host's blog-prune-releases.timer owns retention, not this repo's deploy key. The GitHub Environment variable HUGO_BASEURL is renamed to SITE_BASE_URL on both staging and production (done live by the maintainer before this commit), matching the hub task's own generic, non-Hugo-specific interface. The deploy hook bridges it back to HUGO_BASEURL for Hugo and this repo's own scripts, which keep reading that name exactly as OPERATIONS.md documents. PANGOLIN_ACCESS_TOKEN_ID/PANGOLIN_ACCESS_TOKEN forward as the hub task's SITE_AUTH_TOKEN_ID/SITE_AUTH_TOKEN via the caller's explicit secrets: map, since secrets: inherit does not cross repositories. checks/check-env-docs.py gained a second, clearly-commented allowlist for GitHub Environment values now read by the hub-hosted task rather than by a workflow file this repo's own scan can see.
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: ASSERTIVE Plan: Pro Plus Run ID: 📒 Files selected for processing (1)
Included review availability: Your plan provides up to 10 included reviews per hour; 1 remains after this review. 📝 WalkthroughWalkthroughThe deployment logic moves into a composite action. The deployment job now calls a pinned cross-repository workflow with explicit secrets. Environment documentation and validation now use ChangesDeployment migration
Estimated code review effort: 4 (Complex) | ~45 minutes Merge Risk:⚪ Minimal · up to The workflow adoption and related documentation changes are merge-ready after normal checks; no actionable merge-blocking risk remains. Sequence Diagram(s)sequenceDiagram
participant deploy_site as deploy-site.yml
participant deploy_task as cross-repository deploy-site-task.yml
participant deploy_action as deploy action
participant hugo as Hugo
deploy_site->>deploy_task: Pass environment and deployment secrets
deploy_task->>deploy_action: Invoke deployment mode
deploy_action->>hugo: Build with HUGO_BASEURL
deploy_action->>deploy_task: Return bundle or verification result
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
PR Summary by QodoAdopt hub reusable deploy-site-task workflow with repo-specific deploy hook
AI Description
Diagram
High-Level Assessment
Files changed (5) |
Code Review by Qodo
1. Last word not title-cased |
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
This scope item recorded 'this repo's own progress adopting' the hub-hosted deploy-site-task.yml as deferred. That adoption landed in this same PR, so the bullet, and the intro sentence counting it as a third gap, are both stale now.
ptr727
commented
Aug 24, 2026
Answering "Stale audit documentation" (qodo-code-review, Code Review comment, finding 2): AUDIT.md — Fixed in 9ea7f5e: retired the resolved 'deploy-site-task.yml still calls this repo's own local copy' scope item, since this same PR is that adoption. reports/Blog/audit.md — Not touched, and won't be. It's a dated point-in-time snapshot, not a living doc: its own header states the discipline directly, "a run records what it observed, and a later run supersedes the whole file." It already predates several other now-superseded facts beyond the ones cited here (declared as of hub ref 3b802b9, 2026-08-05). The next audit run supersedes it wholesale, per the same disposition already applied to an identical finding on #100. |
Adopts the hub's reusable
deploy-site-task.yml, the last item from tonight's fleet resync (same shape as #99'svalidate-task.ymladoption).What changed
.github/workflows/deploy-site.yml'sdeployjob now callsptr727/ProjectTemplate/.github/workflows/deploy-site-task.yml@cd7bae9... # 2.0.448instead of the local./.github/workflows/deploy-site-task.yml, with an explicitsecrets:map (secrets: inheritdoes not cross repositories)..github/workflows/deploy-site-task.yml(this repo's carried copy) is deleted..github/actions/deploy/action.yml: this repo's own deploy hook for the hub task's three modes (build, prune, verify). Prune is a deliberate no-op —OPERATIONS.mdalready documents that the host'sblog-prune-releases.timerowns retention, not this repo's deploy key.HUGO_BASEURLis renamed toSITE_BASE_URLon bothstagingandproduction(done live, before this PR), matching the hub task's own generic, non-Hugo-specific interface. The hook bridges it back toHUGO_BASEURLfor Hugo and this repo's own scripts, which keep reading that name exactly asOPERATIONS.mddocuments — no script changes needed.PANGOLIN_ACCESS_TOKEN_ID/PANGOLIN_ACCESS_TOKENforward as the hub task's genericSITE_AUTH_TOKEN_ID/SITE_AUTH_TOKENvia the caller's explicitsecrets:map. Production maps both to empty (neither secret is set there), which the hub task's own assert step treats as a public site with no auth gate, correctly.checks/check-env-docs.pygained a second, separately-commented allowlist (HUB_HOSTED_ENVIRONMENT_VALUES) for GitHub Environment values now read directly by the hub-hosted task rather than by a workflow file this repo's own scan can see (SITE_BASE_URL,DEPLOY_SSH_HOST,DEPLOY_SSH_USER,DEPLOY_SSH_KNOWN_HOSTS).ENVIRONMENT.mdandTODO.mdupdated to reflect theSITE_BASE_URLrename where they described the GitHub Environment variable specifically;HUGO_BASEURLstays documented for the localsecrets/<env>.envshape and Hugo's own native convention, unchanged.Verified
scripts/docker_lint.py --linter actionlint --linter editorconfig-checker,scripts/prose_lint.py --diff origin/main,scripts/repo_gate.py --check sha-pin --exclude 'themes/*/**',checks/check-env-docs.py, anduvx ruff checkall pass clean.Not yet verified: an actual staging dispatch through this new path (planned as the next step once this merges, before ever touching production).
Summary by CodeRabbit
New Features
Documentation
SITE_BASE_URL.Chores