In development we version our builds like so:
0.0.0-{branch-name}+{short-git-hash}
Something like
0.0.0-add-new-button+8ad89d
For production releases our versions are normal SemVer:
1.2.3
I am trying to add a check in octo so that we can't promote any build/package that is a feature branch (0.0.0-add-new-button+8ad89d
) or a dev
branch (0.0.0-dev+8ad89d
) build to Production.
I only want packages generated from master
(1.2.3
) to be allowed to be promoted to the Production Environment.
Octopus supports this using Channels. The various scenarios you mention are shown in an excellent video on this blog post.