Skip to content

chore(pages): publish the canonical www bundle, retire the root upload - #104

Merged
hyperpolymath merged 1 commit into
mainfrom
chore/publish-canonical-bundle
Sep 18, 2026
Merged

hyperpolymath merged 1 commit into
mainfrom
chore/publish-canonical-bundle

Conversation

@hyperpolymath

Copy link
Copy Markdown
Owner

The GitHub Pages site was a 404, and two workflows were racing for it while
neither could win: casket-pages.yml uploaded the repository root, which
contains no index.html at all (and would publish dns/, tls/,
security_headers/ and the rest of the repository past the published
boundary), while the Ddraig build was not guaranteed to produce a site.

  • retire casket-pages.yml - the repository root is not a site
  • the Ddraig build is now best-effort (continue-on-error), so a failed
    Idris build can no longer stop the repository publishing
  • add www/public/index.html, a placeholder in the same shape as the one
    jtv-lang.dev serves, so there is always a servable homepage
  • overlay the canonical bundle between the build and the upload:
    www/public/ (no-clobber, so a page the SSG did produce always wins) and
    www/.well-known/, so /.well-known/security.txt is reachable - RFC 9116,
    and the RSR check on www/.well-known/security.txt

Additive only: nothing the SSG produces is replaced.


Verified before pushing: the workflow YAML parses, the overlay step sits between the build and the upload, and the overlay script was extracted from the YAML and executed against three cases — SSG produced nothing (placeholder index and /.well-known/security.txt both published), SSG produced a real page (not clobbered), and the Jekyll _site/www case (bundle source removed). A leak check confirms dns/ and the other non-published subtrees never reach _site.

Note: the estate is carrying roughly 3,200 queued Actions runs from earlier mass pushes, so this will not deploy immediately. That is a queue backlog, not a failure of this change.

The GitHub Pages site was a 404, and two workflows were racing for it while
neither could win: casket-pages.yml uploaded the repository root, which
contains no index.html at all (and would publish dns/, tls/,
security_headers/ and the rest of the repository past the published
boundary), while the Ddraig build was not guaranteed to produce a site.

  * retire casket-pages.yml - the repository root is not a site
  * the Ddraig build is now best-effort (continue-on-error), so a failed
    Idris build can no longer stop the repository publishing
  * add www/public/index.html, a placeholder in the same shape as the one
    jtv-lang.dev serves, so there is always a servable homepage
  * overlay the canonical bundle between the build and the upload:
    www/public/ (no-clobber, so a page the SSG did produce always wins) and
    www/.well-known/, so /.well-known/security.txt is reachable - RFC 9116,
    and the RSR check on www/.well-known/security.txt

Additive only: nothing the SSG produces is replaced.
@coderabbitai

coderabbitai Bot commented Sep 18, 2026

Copy link
Copy Markdown

Review Change StackReview Change Stack

Note

Currently processing new changes in this PR. This may take a few minutes, please wait...

⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Advanced

Run ID: b6639f58-8816-4406-b020-51c70f481074

📥 Commits

Reviewing files that changed from the base of the PR and between a9fa798 and 9d4321c.

📒 Files selected for processing (3)
  • .github/workflows/casket-pages.yml
  • .github/workflows/pages.yml
  • www/public/index.html
 ____________________________________________________________
< If you don't finish then you're just busy, not productive. >
 ------------------------------------------------------------
  \
   \   (\__/)
       (•ㅅ•)
       /   づ

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@hyperpolymath
hyperpolymath merged commit 09655dd into main Sep 18, 2026
1 of 26 checks passed
@hyperpolymath
hyperpolymath deleted the chore/publish-canonical-bundle branch September 18, 2026 16:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant