Files
runner/src/Sdk/DTPipelines/Pipelines/Step.cs
2019-12-16 17:05:26 -05:00

73 lines
1.5 KiB
C#

using System;
using System.ComponentModel;
using System.Runtime.Serialization;
using Newtonsoft.Json;
namespace GitHub.DistributedTask.Pipelines
{
[DataContract]
[KnownType(typeof(ActionStep))]
[JsonConverter(typeof(StepConverter))]
[EditorBrowsable(EditorBrowsableState.Never)]
public abstract class Step
{
protected Step()
{
this.Enabled = true;
}
protected Step(Step stepToClone)
{
this.Enabled = stepToClone.Enabled;
this.Id = stepToClone.Id;
this.Name = stepToClone.Name;
this.DisplayName = stepToClone.DisplayName;
}
[DataMember(EmitDefaultValue = false)]
public abstract StepType Type
{
get;
}
[DataMember(EmitDefaultValue = false)]
public Guid Id
{
get;
set;
}
[DataMember(EmitDefaultValue = false)]
public String Name
{
get;
set;
}
[DataMember(EmitDefaultValue = false)]
public String DisplayName
{
get;
set;
}
[DefaultValue(true)]
[DataMember(EmitDefaultValue = false)]
public Boolean Enabled
{
get;
set;
}
public abstract Step Clone();
}
[DataContract]
[EditorBrowsable(EditorBrowsableState.Never)]
public enum StepType
{
[DataMember]
Action = 4,
}
}