concourse#729 introduced strict channel separation between GA and pre-release artifacts in concourse, and the same approach applies here since this repo publishes artifacts in a similar way.
What concourse#729 does
master is the only branch that produces a clean GA version (e.g. 1.0.0). GA artifacts route to Maven Central + Cloudsmith releases, and Docker gets the rolling tag set.
release/* produces unique, immutable <version>-rc<N> artifacts (the build counter is lifted into the suffix), routed to Cloudsmith snapshots only.
develop continues to produce -SNAPSHOT, published to the Sonatype Maven Central snapshot repo + Cloudsmith snapshots.
- Every other branch (
feature/*, bugfix/*, etc.) gets a sanitized full-name suffix (e.g. 1.0.0-FEATURE-FOO) and lands in Cloudsmith snapshots only.
- A strict
isGAVersion predicate (no FORCE_PUBLISH override) guards every GA-only destination so non-GA pushes can never silently land in GA channels.
- Branch detection falls back through CI environment variables so detached-
HEAD checkouts on master still resolve correctly.
Adapting to this repo
Use the concourse PR as the reference implementation, but not every piece applies 1:1 — some repos don't publish to Maven Central, don't ship a Docker image, or don't ship a .bin installer. Drop the parts that don't apply and keep the core: branch-based version suffixes + a strict GA gate on every GA-only destination.
References
concourse#729 introduced strict channel separation between GA and pre-release artifacts in concourse, and the same approach applies here since this repo publishes artifacts in a similar way.
What concourse#729 does
masteris the only branch that produces a clean GA version (e.g.1.0.0). GA artifacts route to Maven Central + Cloudsmithreleases, and Docker gets the rolling tag set.release/*produces unique, immutable<version>-rc<N>artifacts (the build counter is lifted into the suffix), routed to Cloudsmith snapshots only.developcontinues to produce-SNAPSHOT, published to the Sonatype Maven Central snapshot repo + Cloudsmith snapshots.feature/*,bugfix/*, etc.) gets a sanitized full-name suffix (e.g.1.0.0-FEATURE-FOO) and lands in Cloudsmith snapshots only.isGAVersionpredicate (noFORCE_PUBLISHoverride) guards every GA-only destination so non-GA pushes can never silently land in GA channels.HEADcheckouts onmasterstill resolve correctly.Adapting to this repo
Use the concourse PR as the reference implementation, but not every piece applies 1:1 — some repos don't publish to Maven Central, don't ship a Docker image, or don't ship a
.bininstaller. Drop the parts that don't apply and keep the core: branch-based version suffixes + a strict GA gate on every GA-only destination.References