Some checks failed
Release production image / production-image (push) Has been cancelled
2.0 KiB
2.0 KiB
Release Construction and Publication
Image identity
Each production image must correlate to one source revision and include OCI version, revision, creation-time, source, title, and description labels.
Release tags:
vX.Y.Z: immutable releasegit-<12-character-sha>: immutable revision identitylatest: optional convenience pointer; never recommended for controlled deployment
Build locally
scripts/release-image.sh --version v0.1.0 --platforms linux/amd64
Publish multi-architecture images
Authenticate to the registry using a scoped token, then:
docker login gitea.skeletonworks.online
scripts/release-image.sh --version v0.1.0 --push
The default published platforms are linux/amd64,linux/arm64. Both must successfully compile and load the native better-sqlite3 dependency. If a target cannot pass build and smoke tests, omit it and state that explicitly in release notes.
Release checklist
- Clean checkout of the intended commit.
- Governance, schema, frontend, backend, and browser suites pass.
- Production image builds without local dependencies.
- Missing-key startup fails; configured startup becomes healthy.
- Root UI,
/api/health, and published deep-link refresh return correctly. - Fresh first-run administrator setup passes with no default credentials.
- Restart preserves data.
- Online backup, checksum verification, destructive restore, and marker recovery pass.
- Upgrade and rollback drill passes with pinned images and matching database backup.
- Public source archive and container image are anonymously downloadable.
- Release notes list image digests, architectures, known limitations, and upgrade instructions.
- Tag and push only after explicit release approval.
Registry authentication is required only for publishing. Consumers must not require credentials for a public release; if the Gitea package cannot be pulled anonymously, publish the identical digest to a supported public registry and use it in public installation examples.