public async virtual Task <IActionResult> PerformMassRelease(string projectName, int releaseId, int definitionEnvironmentId) { var sample = new ReleasesSample(); sample.Context = ClientSampleContext.CurrentContext; return(new ObjectResult(await sample.DeployReleaseToEnvironment(projectName, releaseId, definitionEnvironmentId))); }
public async virtual Task <IActionResult> Compare([FromRoute][Required] string environmentFrom, [FromRoute][Required] string environmentTo) { var sample = new ReleasesSample { Context = ClientSampleContext.CurrentContext }; var releases = await sample.ListAllReleaseDefinitionsWithEnvironmentsExpanded($"{environmentFrom},{environmentTo}", null); var returnReleases = new List <ReleaseInfo> { }; var Exclusions = new [] { "Release Tool", "Clean previous deployments" }; //additional filtering for temporary releases = releases.Where(x => !x.PipelineName.ToLower().Contains("tests") && !x.PipelineName.ToUpper().EndsWith("POC") && !Exclusions.Any(ex => ex.Equals(x.PipelineName, StringComparison.OrdinalIgnoreCase))) .ToList(); foreach (var release in releases) { var temp = release.Environments.ConvertAll(x => new ReleaseEnvironmentInfo { DefinitionEnvironmentId = x.DefinitionEnvironmentId, Name = x.Name, Status = x.Status == null ? StatusEnum.NotStarted : (StatusEnum)Enum.Parse(typeof(StatusEnum), x.Status), Version = x.Version, When = x.When, Who = x.Who, Rank = x.Rank, EnvironmentId = x.Id, ReleaseId = x.ReleaseId, }); var fromVersion = new Version(temp.First().Version); var toVersion = new Version(temp.Last().Version); var difference = fromVersion.CompareTo(toVersion); if (difference > 0) { temp.Last().Status = StatusEnum.Scheduled; } else if (difference < 0) { temp.First().Status = StatusEnum.Scheduled; } returnReleases.Add(new ReleaseInfo { ProjectName = release.PipelineName, Environments = temp }); } return(new ObjectResult(returnReleases)); }
public async virtual Task <IActionResult> DeployPost([FromRoute][Required] string environmentFrom, [FromRoute][Required] string environmentTo) { var sample = new ReleasesSample(); sample.Context = ClientSampleContext.CurrentContext; // await sample.StartDeployment(2,"",1); return(null); }
public static int Main(string[] args) { if (args.Length == 0) { ShowUsage(); return(0); } Uri connectionUrl; string area, resource; DirectoryInfo outputPath; try { CheckArguments(args, out connectionUrl, out area, out resource, out outputPath); } catch (ArgumentException ex) { Console.WriteLine(ex.Message); ShowUsage(); return(-1); } try { var sample = new ReleasesSample(); ClientSampleContext.CurrentContext = new ClientSampleContext(connectionUrl, null); ClientSampleContext.CurrentContext.Connection.ConnectAsync().SyncResult(); sample.Context = ClientSampleContext.CurrentContext; //var releases = sample.ListAllReleaseDefinitionsWithEnvironmentsExpanded().Result; // ClientSampleUtils.RunClientSampleMethods(connectionUrl, null, area: area, resource: resource, outputPath: outputPath); // serialize JSON to a string and then write string to a file // File.WriteAllText(@"c:\temp\releases.json", JsonConvert.SerializeObject(releases)); } catch (Exception ex) { Console.WriteLine("Failed to run the sample: " + ex.Message); return(1); } return(0); }
public async virtual Task <IActionResult> Get(string environments = null, int?definitionId = null) { var sample = new ReleasesSample { Context = ClientSampleContext.CurrentContext }; List <ReleasesSample.ReleaseInfo> releases = await sample.ListAllReleaseDefinitionsWithEnvironmentsExpanded(environments, definitionId); List <ReleaseInfo> returnReleases = new List <ReleaseInfo> { }; foreach (var release in releases) { returnReleases.Add(new ReleaseInfo { ProjectName = release.PipelineName, Environments = release.Environments.ConvertAll(x => new ReleaseEnvironmentInfo { DefinitionEnvironmentId = x.DefinitionEnvironmentId, Name = x.Name, Status = x.Status == null ? StatusEnum.Undefined : (StatusEnum)Enum.Parse(typeof(StatusEnum), x.Status), Version = x.Version, When = x.When, Who = x.Who, Rank = x.Rank, EnvironmentId = x.Id, ReleaseId = x.ReleaseId, }), }); } return(new ObjectResult(returnReleases)); }