We have three projects and one shared library that together form a release.
We use gitflow, so from develop we branch a release branch, test this branch and move it to master. Our tooling consists of Jira, Bamboo, Bitbucket, Sourcetree and Atollic Truestudio.
All (4) projects should share the same version number. This version number must be known in the plan that builds the artifacts so it can be incorporated into the artifacts.
We're looking for a way to automatically generate this version number for the release or master branches (testing the version in master instead of the release branch is an option).
We have only one concurrent release, so we don't have to worry about multiple release branches.
What I've found so far:
- Generating a version number in a deployment project (when the artifacts are already created, so that's not a solution)
- using a git tag to deduce the version (e.g. using git-describe) which is error-prone as adding the tag is a manual action.
- Creating a version using Jira, again a manual action and one that closely ties Jira bookkeeping to our release versioning (which is less desirable).
Our ideal workflow would be to use develop and feature branches until develop contains all features we need, then branching off towards master to create a traceable, identically version numbered release of all projects simultaneously. This version number should be used in the build steps that create the artifacts. This can be done in either the release or in the master branch.
Can you help us to determine what is achievable using the Atlassian tools?
For anyone stumbling on this post, we ended up writing our own python scripts to achieve the items set out above.
- one script to generate a version file based on branch type and existing tags in master
- one script to create release branches in the project's repositories
- one script to merge release branches into master and tag master with the release version
This works reasonably well.
One of the remaining issues is that when Bamboo creates a plan branch, the correct branch for only one of the repositories is used (e.g. repos A and B both get feature branch X. For A's plan branch A is set to X, B remains at develop). We're looking into also solving this with custom scripting.
Hi, If you are running self-managed environments and looking to adopt modern infrastructure, Bamboo Data Center can now be deployed in a Kubernetes cluster. By leveraging Kubernetes, you can easily...
Connect with like-minded Atlassian users at free events near you!Find an event
Connect with like-minded Atlassian users at free events near you!
Unfortunately there are no Community Events near you at the moment.Host an event
You're one step closer to meeting fellow Atlassian users at your local event. Learn more about Community Events