Skip to content

Adopt branch-based publishing channels (concourse#729) #71

Description

@jtnelson

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions