Site content (schedule, bios, nav, calendar) + publish-on-merge CI #3
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "external-web-publish"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Three commits: the site content, the CI pipeline that publishes the module, and changeset-driven versioning.
Deploy target for reference: https://tangonexus.com/nexus/ (production
celilo module statusreportsdomain: tangonexus.com,route: /nexus, currently 0.2.0+1). The domain root is a separate WordPress site, which is why this publishes into a subfolder and why every asset URL carries the/nexusprefix.1. Content
Schedule/Bios(in-page anchors) left,Partiful/Tickets(outbound) right..icsdownload.object-position, and clicking one opens a native<dialog>lightbox (Esc-to-close and focus trapping come free).buildTextMaskusesH * 0.74), so the wordmark itself is unchanged; the stream count scales with width to keep the curtain's density.Photos go through
astro:assets— 2.7 MB of PNG becomes 380 KB of WebP. Michelle Badion's tile is a pre-crop, sinceobject-positioncan crop but not zoom; her lightbox shows the untouched original.2. Publish on merge to main
.forgejo/workflows/release.yml, modelled on lunacycle's (build-bus Phase 4). Publishing ends at the registry — nothing is deployed; rolling a version out totangonexus.com/nexusstays celilo-mgr's job.@celilo/visualizer:file:../celilo/packages/visualizer→^0.2.0mise.tomlpins nodenativerunner ships mise + build-essential, no nodeon_installregisters the repo with the forgeCELILO_PUBLISH_TOKENthe workflow authenticates withtsconfigpicks up@types/nodecelilo module checkrunstscand was failing onastro.config.mjs'sprocess.env, which would have blocked the publish3. Changeset-driven versioning
manifest.yml#versionis now stamped bycelilo module versionfromcelilo-module/.changeset/*.md, matching lunacycle.release.ymlgained aversionphase: pending changesets stamp the version + CHANGELOG and open a "Version Packages" PR (publish skipped); no pending changesets means that PR already merged, so publish runs against a current manifest.This replaces a guarantee that never existed here. An earlier revision of this PR claimed the stale gate forced a version bump on any source change. It does not:
checkModuleStalescopes its git pathspec to the module dir (git-hygiene.ts:54-66), and this repo keeps the site at the repo root, outsidecelilo-module/. I verified it by committing asrc/-only change and watching the gate report✓ manifest.yml is current. So content merges were publishing fresh+Nrevisions of a frozen version number. Changesets are what actually make the version move.⚠️ The changesets live in
celilo-module/.changeset, not the repo root.celilo module version <dir>reads<dir>/.changeset, and unlike lunacycle our manifest sits in a subdirectory. A changeset written to the repo root is silently ignored — the version job sees nothing pending and goes straight to publish. This is called out in the workflow, the manifest, and.changeset/README.md, because it is invisible when you get it wrong.The hand-set
0.3.0is reverted to0.2.0and expressed as a minor changeset instead, so the first release through this pipeline is stamped by the pipeline rather than by hand.What merging this does
versionphase finds the pending changeset, stamps 0.2.0 → 0.3.0, writesCHANGELOG.md, and opens a "Version Packages" PR. Nothing publishes yet.publishphase packages the module and uploads 0.3.0 to celilo-registry.tangonexus.com/nexusis a separate operator action.Verified
npm run build,astro check(0 errors — the pre-existingprocesserror is fixed),lint:cssclean.bun testincelilo-module/scripts: 9 pass, including three new cases covering the forge registration.celilo module check ./celilo-module: 5 ok, 0 fail.celilo module version ./celilo-modulerun locally against this exact layout:0.2.0 → 0.3.0 (minor); consumed 1 changeset(s), wrote CHANGELOG.md. State restored afterwards so CI does the real stamping.Notes
secrets.CELILO_PUBLISH_TOKENis set on the repo. Theon_installregistration still earns its place — it makes the token reproducible on a fresh forge, and overwrites the manual secret with a package-scoped one on the next deploy.npm install --no-save ../celilo/packages/visualizer, ornpm link); otherwise the site builds against published 0.2.0 and your edits are invisible. Ordinary site work just needsnpm install.src/pages/play.astrocarries a print-export change (?scale/?sync) that was already staged before this branch.🤖 Generated with Claude Code
Add schedule, bios, nav and calendar to the event siteto Site content (schedule, bios, nav, calendar) + publish-on-merge CI