Need help organising the deployment proces

Hi,

Say i have 3 deployment targets in the environment Test called Test A, Test B and Test C.

Test A should have the previous production version. For example release branch 3.20.0.
Test B should have the current production version. For example release branch 3.21.0.
Test C should have the current development version. For example the master branch.

We are using Jenkins to build our application and use octo to create a release. If i were to deploy a release to Test all 3 deployment targets would get the same version. I can manually deploy the version to the right deployment target but i would like to have a trigger at the end of the end to deploy the most recent release of each branch. I was looking at channels or target roles to get the above situation in Octopus but i am not quite sure how to make it work.

Any suggestions?

Hi!

Thanks for getting in touch!

I am sorry that I am not exactly sure what you are trying to achieve, can I clarify a few things from you

  • You don’t want a release created from Jenkins to be deployed to all targets? If that is the case, instead of having one Test environment with 3 targets, you could use 3 environments and each one of them has 1 target, that way you could prompt release between them.
  • What does the trigger refer to?
  • Are you using a branching pattern e.g. GitFlow?
  • Does production version mean the version going to be deployed to production or it is already deployed to production

Looking forward to hear from you soon

Regards
Eddy

Hi,

Sorry for the original question not being clear. Let me try expanding on it.
Test A should have the previous production version. For example version 3.20.0. The purpose of this target is to be able to validate if a bug is new in the current version on the production machine or was already present in previous versions.
Test B should have the current production version. For example version 3.21.0. The purpose of this target is to be able to reproduce issues we see on the production machine. So in this case the version on the production machine is also 3.21.0.
Test C should have the current development version. The idea behind this target is that testers can test newly developed code every time a pull request is merged to master.

Test A and B only sporadically need a new release but Test C needs to be refreshed often because new code is added to the master branch. In Jenkins we have a job which creates a new release every time a pull request is merged to master. We can manually deploy this release to Test C but i would like to automate this. We could use the octo command line to automatically deploy the release but then the application would often be unavailable because of an in progress deploy. I would like to automatically deploy the most recent release at for example lunch hour and end of the day.
Under the project tab in Octopus there is a triggers page which has the option to deploy the latest release at certain intervals to a target environment. That looks a lot like what i want but it would deploy that latest release to Test A, B and C unless we follow your suggestion to make those 3 seperate environments. Is that the best way to do it?

We are using a branching pattern similiar to Microsofts Release Flow.

Hi!

Thanks for sending the information through. I would personally suggest that to have multi environments with scheduled trigger.

I hope this helps!

Regards
Eddy

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.