How to group and create release for multiple projects


We have multiple spaces and many projects in those spaces. We need to group these projects and create the same version of the release in multiple projects. Basically, we need to deploy the same version in a group of projects simultaneously. What will be the best approach to do that?

Currently, we are triggering the deployment from CircleCI using Octo CLI. We have the project grouping in place but there are no options in Octo CLI to use that project group to create a release.

Also checked the possibility of having a parent build that can trigger the group of projects using the step template “Deploy a Release”. But it is not creating a release in child jobs instead it is just rebuilding the existing release.

As we have several projects, we are also looking for a solution that can be used to rollback version. It will not be a good idea to go and manually revert the version in each project. So if you could suggest something that we can do the rollback in a group of projects in a single click would be helpful.

Please let us know how OctopusCD can solve the above.

Thanks in advance

Arun S Raj

Hi Arun S Raj,

Thanks for getting in touch, and great questions! There are a few potential things that might help you achieve exactly what you’re looking to do.

Firstly, instead of the CLI to create many releases across many projects (and since you can’t filter by project group as you pointed out), you might want to consider an API script similar to below but expanded to loop over projects by group they’re in.

In regards to the Deploy a Release step, when you create a release of the “parent” project that deploys the child projects, the release versions of the child projects are snapshotted into the release of the parent project. Meaning deploying an older release of the parent will deploy the older release of the children as defined in its snapshot.

There is also a library step template named Chain Deployment, similar to the built-in Deploy a Release step, will additionally create a new release of the “child” project, where you can simply tie the release number in the step to the system variable #{Octopus.Release.Number} system variable that is generated during the execution of the deployment of the parent release.

I hope one of these options helps in the planning and modelling of your solution. Let us know if you have any further questions or concerns!

Best regards,