Beispiel #1
0
        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)));
        }
Beispiel #2
0
        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));
        }
Beispiel #3
0
        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);
        }
Beispiel #5
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));
        }