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)