ci: publish the site as the sites/zddc OCI content image, retire the sftp deploy #1
Loading…
Reference in a new issue
No description provided.
Delete branch "ctrl-agent/zddc-website:ci/oci-image"
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?
Moves zddc.varasys.io's website to the lab's standard OCI content-image model — the same
image.ymlpattern asvarasys/metronomeandvarasys/renew— and retires the sftp deploy.What changes
.forgejo/workflows/image.yml(push tomain+workflow_dispatch, the same triggers the old deploy had; it had no path filter). It stages exactly whatci/deploy.shuploaded (cp -a ./.then drops/.git*,/.forgejo*,/ci,/README.md,/LICENSE,/releases— the samermline), refuses to publish if the staged tree has noindex.html(the old post-upload check, moved before the push), buildsFROM scratchwith buildah (BUILDAH_ISOLATION=chroot STORAGE_DRIVER=vfs), logs in withvars.REGISTRY_USER+secrets.REGISTRY_TOKEN(password on stdin), pushessites/zddc:<YYYYMMDD>-<short-sha>and:latest, then ringsssh … "$DEPLOY_ORIGIN" "$DEPLOY_COMMAND $SITE".DEPLOY_ORIGIN/DEPLOY_COMMAND unset — … pushed, origin NOT refreshed) while those vars are unset (renew's behaviour), so the image can be published before the origin serves it..forgejo/workflows/deploy.ymlandci/deploy.sh. After this merges the site is published only as an image. The origin keeps serving its current/var/www/zddccopy until the hub's cutover switches it to mountsites/zddc; edits merged in between are in the image but not live until then.Vars/secrets the workflow expects (for the hub)
REGISTRYIMAGE_REPOsites/zddcSITE_NAMEzddcREGISTRY_USERpush-zddcDEPLOY_ORIGINDEPLOY_COMMANDrefresh-site)REGISTRY_TOKENpush-zddc's passwordSTATIC_DEPLOY_KEYrefresh-site zddcWatch before merging
DEPLOY_ORIGIN+DEPLOY_COMMANDbeing non-empty, and Actions cannot tell an org value from a repo value. The old deploy already readvars.DEPLOY_ORIGINandsecrets.STATIC_DEPLOY_KEY, probably org-level. IfDEPLOY_COMMANDis also visible at org level, this merge ringsrefresh-site zddcpre-cutover with the old shared key. Check what this repo inherits before merging.CLAUDE.md. The old excludes never dropped it, andhttps://zddc.varasys.io/CLAUDE.mdreturns 200 today. The image keeps that behaviour on purpose (the brief was "stage exactly what deploy.sh uploads"); dropping it is a one-word follow-up.<date>-<short-sha>(it contains the short sha);:latestis what refresh-site serves.Tests
CLAUDE.md css img index.html js next pubkey.pem reference.html spec workflow.html, the same setci/deploy.shuploaded.run:script passesshellcheck -s bash -S warningclean.varasys/renew's workingimage.yml. They were not run here: no registry access from the authoring side.Hub notes
REGISTRY_TOKEN(a repo secret),REGISTRY_USER(push-zddc),IMAGE_REPOandSITE_NAME.REGISTRY,DEPLOY_ORIGINandDEPLOY_COMMANDare inherited org vars.STATIC_DEPLOY_KEYis still the inherited (gated) org key until cutover. All of the refresh inputs are therefore present, so the refresh will be attempted on merge.refresh-siterejectszddc, which it does not serve yet. The image push happens before the refresh and is unaffected. The hub cuts over right after the merges and re-runs the workflow.🤖 Generated with Claude Code