Releasing
Releases are cut from GitHub; nothing is bumped by hand.
Every PR carries one label. Release Drafter keeps a draft release up to date on each push to
mainand picks the next version from those labels:Label Bump breakingmajor feature,enhancementminor bug,refactorpatch Branches and PR titles are labelled automatically (
feature/…,fix/…, "Add …", "Fix …", "Refactor …").Publishing the draft runs
release.yaml:- sync-version writes the tag into
<Version>ofsrc/DockiUp.API/DockiUp.API.csprojand commitsBumped DockiUp.API.csproj to X for release [skip ci]tomain. - docker checks out that commit and pushes a multi-arch image (
linux/amd64,linux/arm64) to Docker Hub and GHCR, taggedX.Y.Z,X.Y,Xandlatest(not for pre-releases).
- sync-version writes the tag into
The version shown in the side rail and returned by /api/App/GetAppInfo is that assembly version, so the running image always reports the release it was built from.
Repository setup
| Secret | Used for |
|---|---|
DOCKERHUB_USERNAME | Docker Hub account the image is pushed to |
DOCKERHUB_TOKEN | Docker Hub access token with read and write access |
GHCR and the release drafts use the built-in GITHUB_TOKEN; nothing else needs configuring. After the first release, set the GHCR package's visibility to public so the image can be pulled without signing in.