0

Our team uses a mono-repo, with several microservices, and some common packages between them.

I am tasked with adding CI/CD automation, and traditionally I rely in Git tags for the sem-ver and utilize comments to decide on major/minor/patch. The semantic-release node library does an good job of automating this.

The problem here is that it is a mono-repo and thus commits and tags are only useful across a global sem-ver. However in my case I have multiple microservices that each will have their own sem-ver.

One thought I have is maintaining a json manifest to store the versions of the services. By blocking direct pushes to the main branch, I can guarentee this file would not be changed on master except by the CI/CD actions.

I also would like to get some ideas from the community on what they would do in this situation? Or what they have done similar to this in the past?

Sam Hammamy
  • 10,819
  • 10
  • 56
  • 94
  • I don't understand what your problem is. What do you want to automate? Why do you want separate versions when everything is in one repo? Why would CI/CD actions change the version? Especially with semver you need a human to decide what kind of version change you need, don't you? – Jens Schauder Jun 01 '22 at 08:52
  • I came here as I have exactly the same scenario. What resources did you find useful and/or what did you end up doing? I don't want API A to change the version of API B when the code of API B hasn't been touched. – Dorothy Hawley Nov 22 '22 at 07:57
  • @DorothyHawley fortunately for me I left the project very shortly after that, and moved on to a better one. My apologies but I don't have anything that would be helpful to you – Sam Hammamy Nov 22 '22 at 15:25

0 Answers0