We are trying to simplify our releases, and the number of times we have to actually deploy a new release.
Let me outline our environments.
We have ci, test, demo, training, sales, beta, and production.
Our releases roll out to multiple sites in each environment (we have a separate machine for each environment).
i.e. seattle-test, boston-test, denver-test, houston-test
seattle-demo, boston-demo, denver-demo, houston-demo
etc. (21 cities in each env)
Currently we have automated deployment to the CI environment from team city.
After that, we promote to each site within each environment by clicking the promote button once a deployment is done, or by scheduling the deployments to each site 5 mins after each other.
This takes quite a bit of time.
Can anyone suggest a more efficient way to do this?
Thanks for getting in touch!
I have some ideas here, but what will really help is a screenshot of your environments page and a screenshot of your dashboard.
That will give us enough information to see how this is setup to provide some hints and insights.
Here is a sample of the dashboard.
Note that there is one more physical environment we are adding to the chain, Training, and we have not added each “site/city” to each environment (Just found out today that this has grown from 21 to 40 for next month!).
Our app is setup in such a way that each “site/city” has its own database and website, and each physical environment shares an API and Service.
Thanks for the screenshot.
After a bit of internal discussion we are thinking that Octo.exe and promote-release might be your friend here.
It would allow for variables such as
--from, which would mean you could promote “project name” from x environment to y environment without having to name all the machines - like a batch promotion from environment to environment.
Our documentation page on Octo.exe http://docs.octopusdeploy.com/pages/viewpage.action?pageId=360596
Hopefully this will make the process a lot smoother and quicker for you.
octo.exe will work, we are also looking at using the rest api to promote the release from environment group to environment group.