Ejemplo n.º 1
0
        public JsonResult <List <Build> > Get()
        {
            var builds = _teamCityService.GetAllBuilds();

            return(Json(builds));
        }
Ejemplo n.º 2
0
        public void Run()
        {
            Log.Info("Polling started.");

            try
            {
                var builds = _tcService.GetAllBuilds();

                if (_lastBuilds != null)
                {
                    var a = _lastBuilds.OrderBy(x => x.FinishDate).ToList();
                    var b = builds.OrderBy(x => x.FinishDate).ToList();

                    Log.Info("Last builds is not null");
                    if (!a.SequenceEqual(b))
                    {
                        for (var i = 0; i < a.Count; i++)
                        {
                            if (!a[i].Equals(b[i]))
                            {
                                Log.Debug("Item not equal");
                                Log.Debug($"{a[i].ProjectName} <--> {b[i].ProjectName}");
                                Log.Debug($"{a[i].ProjectId} <--> {b[i].ProjectId}");
                                Log.Debug($"{a[i].StepName} <--> {b[i].StepName}");
                                Log.Debug($"{a[i].Status} <--> {b[i].Status}");
                                Log.Debug("-----------------------------------");
                            }
                        }

                        Log.Info("Found changes in builds, posting to node");

                        _isSuccess = _nodeService.PostBuilds(builds);
                        Log.Info("Post builds SUCCESS: " + _isSuccess);

                        //_tcService.PutBuildsInCache(builds);
                    }

                    CheckForFailedBuilds(builds);
                }

                if (_lastBuilds == null && !_isSuccess)
                {
                    Log.Info("Last push to node did not succeed, posting again");

                    ////PostLatestFailedBuild();

                    // Send builds to node
                    _isSuccess = _nodeService.PostBuilds(builds);

                    //_tcService.PutBuildsInCache(builds);
                    Log.Info("Post builds SUCCESS: " + _isSuccess);
                }

                // Send latest build to node, builds.first()
                if (builds.Count > 0)
                {
                    Log.Info("Posting latest build to node");
                    _nodeService.PostLatestBuild(builds.First());
                }

                if (_isSuccess && builds.Count > 0)
                {
                    Log.Info("Replace last builds");
                    _lastBuilds = builds;
                }
            }
            catch (Exception e)
            {
                Log.Error("TeamCity polling job failed. ", e);
            }

            Log.Info("Polling finished.");
        }