I suggest you...

Composite Step Templates

There are sets of common steps that we very often want to "bookend" all of our deployments with. One concrete example would be: sending out a Manual Intervention to confirm when all servers are confirmed live before stamping a new deployment in NewRelic.

Right now, everyone has to bake these steps into their own projects by adding the Manual Intervention step followed by the NewRelic Deployment Stamp step. If it were possible to create what I would call "Composite Step Templates" then I could define a reusable step template that was made up of other step templates. That way, instead of everyone having to repeat all of the possible steps in their own projects, they would simply include this one composite step and they'd be done.

Now, my composite example was only two steps to keep it simple, but you can imagine maybe a composite is made up of more than that. Or even imagine a change in policy where the Manual Intervention email has to include more information. Everyone has to repeat this stuff in all their projects and having the ability to put it into a composite step would alleviate all of that.

733 votes
Vote
Sign in
Check!
(thinking…)
Reset
or sign in with
  • facebook
  • google
    Password icon
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    Drew Marsh shared this idea  ·   ·  Flag idea as inappropriate…  ·  Admin →

    14 comments

    Sign in
    Check!
    (thinking…)
    Reset
    or sign in with
    • facebook
    • google
      Password icon
      Signed in as (Sign out)
      Submitting...
      • Bruno commented  ·   ·  Flag as inappropriate

        What is the ETA of this feature?

        I am planning to do a big migration from VSTS Release Mgmt to Octopus Deploy because VSTS doesn't allow to reuse a "lifecycle" between different definitions. However VSTS supports to reuse a composite step template (Task Group), which is also important for us.

      • Chris Camburn commented  ·   ·  Flag as inappropriate

        One additional request: We use a number of standard settings for IIS, and the current built-in IIS deployment step is perfect, so that we don't have to script everything ourselves. We'd like to use that as a step template, so that any changes to how we deploy IIS sites can apply to all projects at once. Unfortunately, to do that we have to use a variable for the package name, which breaks the retention policy. Unlike most steps where we can reference a previous package step name, the IIS step requires the package be in the step.

        Is it possible to have a new template parameter type for a Package Name, that still uses the autocomplete that most package deployment steps have? Or possibly a way to pass in the package name to a template while having Octopus retention policies run correctly?

      • Chris Camburn commented  ·   ·  Flag as inappropriate

        Any updates on this? While the new 4.X UI is nice, this RFC is 6 months old and would be incredibly useful.

      • Anonymous commented  ·   ·  Flag as inappropriate

        I agree, project templates are very important when working on a bunch of micro-services.

      • Darren Aitcheson commented  ·   ·  Flag as inappropriate

        +1 from me also.

        What would also be useful here is to have the concept of non-skippable step (apart from the manual intervention steps of course).

        Our scenario - we currently have steps that have to go at the beginning and end of all of our deployments for SOX compliance reasons. We want to give the devs access to modify their own processes, but these particular steps must always be there and mustn't be allowed to be skipped by the users.

        Some way of making that happen would be great.

      • Chris Camburn commented  ·   ·  Flag as inappropriate

        +1 to the ability to have this function like TeamCity. It would be nice when you have multiple projects all based on a template to update in one place and have that change propagate.

      • Kalvin Krueger commented  ·   ·  Flag as inappropriate

        Any updates on potentially including this feature. It has a lot of votes and would be really helpful in creating a deploy step, where I could also run powershell server setup afterwards, but when pulling it in I can package it in 1 step template instead of 3

      • Jonas commented  ·   ·  Flag as inappropriate

        We often configures a website in a specific way, such as what should be logged and where, adding some writable folders etc.

        This is done on all our sites and is, at the moment, done with one powershell script in one step template. Since this step i basically three steps it would be much nicer if I was able to have three childsteps. Easy to configure in the projects and easy to se whats done.

      • Kenneth Truyers commented  ·   ·  Flag as inappropriate

        I agree, a system like teamcity where you have build templates (that'd be deploy templates) and metarunners (step templates) would be great. Step templates is a very nice feature, but one more level would be really handy

        We currently have 10+ different but standardized projects that share the exact same steps, so every time our process changes we have to make the change on all projects. When we add a new project we have to add them manually (or clone an existing projecr).

      • Tjeerd-menno Douma commented  ·   ·  Flag as inappropriate

        The new step templates are a very big step in the right direction. But since it's limited to only 1 step per template it's usefulness is also limited.

        I believe it would be very useful to be able to compose templates from multiple steps or add multiple child steps.

        This would help template out common flow mechanisms and it helps making thing more DRY.

      Feedback and Knowledge Base