Best approach for deploying related and unrelated projects

Hi Bob, I’ve just noticed that the Trigger for the orchestration project was set to “Deploy new release” rather than “Deploy latest release”. I had to choose this option to get the “Channel” option, which I selected as the “QA only channel” (as per previous suggestions above).
Is that all correct?
I imagine that selecting ‘Deploy latest release’ and picking Dev as the source and QA as the target would do the trick? But QA is not available as an environment as the target
Richard

That’d deploy the most recent release…but the versions of the child project are snapshotted at release creation time. You’d be deploying the same code over and over.

I’m not sure I understand that, but my earlier reply was wrong - it was the fact that Dev was not available as the source.
My only issue now is that the scheduled trigger is not working - deployments were set for 22:00, but failed to start. Any thoughts on that?
Thanks again
Richard

In general, when a trigger doesn’t appear to fire, you’ll want to find the task that processed the trigger. You can go to the tasks screen, then search by task type of Process recurring scheduled triggers. Find the trigger for your timeframe and look at the log. It does a pretty good job of telling you why it failed.

Cool, thanks for that Bob.
It’s trying to create release 2.35.1.2, despite the fact the last release (manual) was 2.35.1.18

I’m using the version template (defined in Orchestrator Settings):
#{Octopus.Version.Channel.LastMajor}.#{Octopus.Version.Channel.LastMinor}.#{Octopus.Version.Channel.LastPatch}.#{Octopus.Version.Channel.NextPatch}

Which I thought would increment the final field only - and set it to 2.35.1.19. It seems I’m missing something
Thanks
Richard

I apologize in advance for such a dumb question, but do you have more than one channel in that orchestration project, or did you go with a single channel?

There’s a default channel and a QA only channel

Hi Richard,

It appears to be an issue with the channel and the fourth number. I’ve tried both next path and next build and I got the same results.

The template I found that worked (and guaranteed uniqueness) was:

#{Octopus.Version.Channel.LastMajor}.#{Octopus.Version.Channel.LastMinor}.#{Octopus.Version.Channel.LastPatch}.#{Octopus.Version.Channel.LastBuild}-nightly.#{Octopus.Date.Year}#{Octopus.Date.Month}#{Octopus.Date.Day}#{Octopus.Time.Hour}#{Octopus.Time.Minute}

As for the actual process, I have wrapped up my step template and will be submitting it for approval today. Keep an eye out in the library for Deploy Child Project.

How it works:

You can provide a specific release (2020.2.2.1), a wildcard release (2020.2.2.*), or leave the value blank. If left blank it will attempt to find the latest release created in the source environment.

I have a different pattern per channel.

When the step ran for the QA channel it had two versions in dev.

It picked the 2020.2.2 release. It did this because it matched the pattern, not the most recent release.

It has a few other tricks up its sleeve.

Source environment:

  • If you provide a source environment it will look for the latest release in that specific environment
  • If you don’t provide a source environment it will use the destination environment and calculate what the source environment should be (that was…interesting to write)

Redeployment

  • By default, you can skip the deployment if it has already been deployed to the destination environment
  • That can be changed to always deploy

WhatIf / Testing

  • You can set a “what if” option to yes, which will do everything but run the actual deployment
  • If the what if option is set to yes, it will set an output variable “ReleaseToPromote” which you can use in subsequent steps (such as approvals, or running this step again but with whatif set to false)

Wait for deployment

  • You can tell it to wait for the deployment to finish or kick of the deployment and move onto the next project.

Hi Bob. That’s really good news - and it looks like a really good addition to the available steps.
Thank you for all your help on getting this sorted-out
I tried the version template you supplied and it worked perfectly - thanks for supplying that.

I’ll look for your new step - any chance you could add a note to this so I get emailed?
Thanks again and have a good Christmas
Richard

Awesome.

The new step was pushed up this afternoon: https://library.octopus.com/step-templates/0dac2fe6-91d5-4c05-bdfb-1b97adf1e12e/actiontemplate-deploy-child-octopus-deploy-project. It’s still a v1, so test it out on a few sample projects before going full YOLO on it.

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