Suggestion: Add support for custom deply steps (using .NET assemblies)

We have complex environments with load balancing servers borth for IIS and Windows Services. Those steps are the same for all applications and we would like to get better control over how they are used.

We would therefore be able to create .NET assemblies which could be used as custom deploy steps.

The following features would be nice:

  • Expose required variables (so that we can configure data required for the custom deploy step through the administration interface)
  • The ability to upload deploy steps to the octopus server (it can copy them to a folder and use reflection to discover all steps included in the DLL)

To allow that you have to create a API assembly (nuget package) which have to be included when creating custom deploy steps. A suggestion to it’s contents:

public interface ICustomStep
{
    Name { get; }
    IConfigurationVariableDescription[] CreateConfigurationDescription();
    void Execute(IConfigurationVariable[] variables);
}

public interface IConfigurationVariableDescription
 {
      // Name exposed in the octopus admin
      string Name { get; }

      // A markdown description of what the variable should contain
      string Description { get; }
 }

public IConfigurationVariable
{
      // Same name as in the interface above
     string Name { get; }

      // Value specified in octopus admin
     string Value { get; }
}

That would be much easier to maintain and reuse than powershell scripts for .NET devs like me (that have never used powershell)

Hi,

Thanks for the suggestion, we’re currently working on Octopus 2.0 and I’ve been considering a plugin model for some time for custom steps. It’s good to know there’s are potential uses for it.

Paul

Hi,

We currently use msdeploy for our deployments, but would like to migrate to octopus deploy. To make this easier we would like to have the msdeploy package option instead of nuGet. Native support would be great, but creating a custom step for this would also be a good first step.

Erik

Thanks Erik, I’ve noted it down as something to think about on our roadmap.

Paul