Hi,
I am trying out OctopusDeploy and I have many forms of deployments:
I might deploy ServiceA and ServiceB and in other deploy I might deploy ServiceB or other one will be ServiceB and ServiceC.
I could create project for each form of deployment, but it will be annoying.
Is there any way - to make a release and choose which projects are deployed?
Thanks for getting in touch. Right now your best bet to achieve this is to create a project per service and perhaps create a 4th orchestrator project that has a step to deploy to each of the other 3 (using Octo.exe). This way you’d be able to skip any step/deploy you want from your 4th orchestrator project.
A quick question: If I have rolling deployment and want to add steps only
for the first server - for example manual intervention (to do QA test) how
can I do this?
Let’s say for the first instance of the “web-server” I want to add
specific steps only for him (in my case “Manual Intervention”).
How can I add “child steps” only for the first “web-server”?
Unfortunately its not possible to add a step for just one server inside a set of rolling steps. All the steps inside will run for the same environment/role combination.
If its mandatory for you to deploy everything on one server first, and then trigger a “Manual Intervention” step for smoke testing, you could have a tentacle with a role like “SmokeTest” and at the beginning of your deployment process have the same 3 steps shown on your screenshot + a manual intervention that’ll run only on machines with the role “SmokeTest”.
But I thought about another idea - please let me know if this is possible.
Create a “Step Template” for conditions that will check the value of
octopus variable like Octopus.Machine.Name with a step parameter and if so
it will execute it child step.
How can I create “Step Template” that support child step?
Can I add another level of step? One for the rolling and another one
for this step?
The main problem here is that you cannot decide whether to run or not a step based on a condition that’s not Success or Failure. You could create the “Step Template”, but there wouldnt be a way for this step to tell the next one “Ok you can run” based on the value of a variable. We have a Uservoice suggestion specifically for this that is not getting as much support as i’d like. Please try to put some votes on it
Unfortunately the best way right now would be what i proposed on my previous reply
Using Channels you can scope different steps to different channels to create releases that only deploy specific components, like this:
Step Number
Description
Scoped To channels
1
Deploy component 1
“Component 1”,"All Components
2
Deploy component 2
“Component 2”,“All compunents”
3
Deploy component 3
“Component 3”,“All Components”
This way you can create a release for “Component 2” and only deploy that component, or “All components” and deploy all of them at once or any other combination you want. Everything from a single project and a single deployment process, which is a lot easier to manage than multiple ones.