using System.ComponentModel.DataAnnotations; public class CiBuildSettings { /// /// A command specification (a system command), /// in order to reference some trusted server-side process /// public class Command { [Required] public string Path { get; set; } public string[] Args { get; set; } /// /// Specific variables to this process /// /// public string[] Environment { get; set; } public string WorkingDir { get; set; } } /// /// The global process environment variables /// /// public string[] Environment { get; set; } /// /// The required building command. /// /// [Required] public Command Build { get; set; } /// /// A preparing command. /// It is optional, but when specified, /// must end ok in order to launch the build. /// /// public Command Prepare { get; set; } /// /// A post-production command, /// for an example, some publishing, /// push in prod env ... /// only fired on successful build. /// /// public Command PostProduction { get; set; } /// /// Additional emails, as dest of notifications /// /// public string[] Emails { get; set; } }