Development and release
Blog Studio has two deployment channels.
| Channel | Git | Audience |
|---|---|---|
| Unstable | dev |
Internal editor on the home-server host |
| Stable | annotated vX.Y.Z tag on main |
Documented public installs |
The home-server editor is always unstable. Look at a change there before
promoting it. Do not install dev images on a durable public host.
Unstable work
Section titled “Unstable work”- Branch from
devand open the pull request intodev. - After merge, GitHub Actions builds
blog-studio:dev-<sha>on the home-server runner and recreates only Studio. - Confirm the journey at
https://blog-editor.internal.wj2015.com. - If it is wrong, send another pull request to
dev. Keep the previousdev-<sha>image for a fast rollback.
gh pr create --base dev is the normal command. Manual redeploy:
gh workflow run unstable-deploy.yml --ref devStable release
Section titled “Stable release”Promote only after the unstable editor has been used for the intended journey.
- Open a pull request from
devintomain. - Merge after
qualityandsecurityare green. - Push an annotated signed tag
vX.Y.Zfrom thatmaincommit. - The Release workflow publishes
ghcr.io/djangoailab/blog-studioand the GitHub Release artifacts. - Durable hosts upgrade from the immutable digest in that release. See Upgrade and rollback.
The complete command list, runner registration, and rollback notes live in the
repository guide docs/guides/development-and-release.md.