mirror of
https://github.com/coollabsio/coolify.git
synced 2026-10-28 17:44:36 +08:00
Build release/vX.Y pushes for amd64 and aarch64, then publish X.Y-dev.<short-sha> and moving X.Y-dev tags to GHCR and Docker Hub. Report build status to Discord and document the release branch tags.
3.7 KiB
3.7 KiB
Coolify Release Guide
Branches
| Branch | Purpose |
|---|---|
main |
Latest production source |
release/v4.x |
Feature integration and RC releases for the next minor release, such as release/v4.5 |
feature/* |
New features based on and merged into the current release/v4.x branch |
hotfix/X.Y.Z |
Production fixes based on main |
x is the number of the next minor release. When 4.4.x is the production version, the release branch is release/v4.5. Create a new release/v4.x branch from main after each stable minor release. Do not use a long-lived next branch.
Release workflows never edit or commit versions. Stable versions come from config/constants.php; RC versions come from coolify.nightly.version in versions.json and other/nightly/versions.json.
Where changes go
- Fixes, security updates, and small improvements target
main. - New features and larger changes target the current
release/v4.xbranch. - Merge
mainintorelease/v4.xregularly so every production fix is included in the next release. - Do not merge
release/v4.xintomainuntil an RC is approved for a stable release.
Feature and RC flow
feature/* → release/v4.x → RC
- Merge feature branches into
release/v4.x. - Set
coolify.nightly.versionin both version files to the intended RC, such as4.5-rc.1. - Every push to
release/v4.xruns Build Coolify Release Branch. It calculates the version from the branch name and publishes4.5-dev.<short-sha>and the moving4.5-devtag. It never publishes an RC or stable tag. - Create a reviewed draft GitHub Release named
v4.5-rc.1and mark it as a prerelease. - Run Release Coolify RC manually from
release/v4.xand enterv4.5-rc.1. - The workflow validates the draft and configured nightly version, builds the exact RC, publishes
4.5-rc.1, updates thenextimage tag, and publishes the draft prerelease. - Advance
coolify.nightly.versionto the next intended RC version.
Stable release flow
release/v4.x → main → stable release
- Temporarily stop merging features into
release/v4.x. - Change the version on
release/v4.xfrom the approved RC to the stable version, such as4.5.0. - Merge
release/v4.xintomain. - Create a reviewed draft GitHub Release named
v4.5.0. - Run the stable release workflow from
main. - The workflow rebuilds the exact stable version, publishes
4.5.0andlatest, then publishes the draft. - Update the CDN only after the release is approved.
- Create the next release branch from
main, such asrelease/v4.6, and set its development version. Delete the old release branch.
Hotfix flow
main → hotfix/X.Y.Z → main → release/v4.x
- Create
hotfix/X.Y.Zfrommainwhen a patch needs an integration branch. A single fix may use a normal branch frommaininstead. - Set the intended patch version.
- Implement and test the fix. SHA images report
X.Y.Z-dev.<short-sha>. - Merge the fix into
main. - Create a reviewed draft GitHub Release named
vX.Y.Z. - Run the stable release workflow from
main. - Merge
mainintorelease/v4.x, resolve the version in favor of the next intended RC, and delete the hotfix branch if one was used. - Update the CDN only after the release is approved.
Image tags
| Tag | Meaning |
|---|---|
latest |
Latest stable release |
next |
Latest successful next build (legacy branch) |
X.Y-dev |
Latest successful release/vX.Y build |
X.Y-dev.<short-sha> |
Exact release/vX.Y commit build |
X.Y.Z |
Exact stable release |
X.Y-rc.N |
Exact RC release |
sha-<commit> |
Exact commit build |
Git tags use the v prefix, such as v4.5.0. Docker image tags do not.