Exemple #1
0
        private ApiObjects.Releases.GetRelease.GetReleaseRootObject GetPreviousSuccessfulRelease(
            string project,
            ApiObjects.Releases.List.Release[] releases,
            int releaseId,
            string environment)
        {
            Log.Info("GetPreviousSuccessfulRelease: starting");
            GetReleaseRootObject returnObj = null;
            var releasesReverseOrdered     = releases.OrderByDescending(x => x.id);

            Log.Info("GetPreviousSuccessfulRelease: iterating all releases in reverse order");
            foreach (var release in releasesReverseOrdered)
            {
                Log.Info("GetPreviousSuccessfulRelease: processing release: " + release.id);
                // only look at previous releases
                if (release.id < releaseId)
                {
                    // get the full release object so we can see if it successfuly deployed in the environment
                    Log.Info("GetPreviousSuccessfulRelease: This is a previous release, processing release.id: " + release.id);
                    var theRelease = GetRelease(project, release.id);
                    Log.Info("GetPreviousSuccessfulRelease: This is a previous release, found theRelease: " + theRelease.ToString());

                    // check if it deployed successfully in the environment
                    if (theRelease.environments.Any(env => (env.name.Equals(environment, StringComparison.InvariantCultureIgnoreCase)) && (env.status.Equals("succeeded", StringComparison.InvariantCultureIgnoreCase))))
                    {
                        Log.Info("GetPreviousSuccessfulRelease: In this release, found environment: " + environment + " and status succeeded");
                        returnObj = theRelease;
                        break;
                    }
                    else
                    {
                        Log.Info("GetPreviousSuccessfulRelease: Aborting. Release did not contain status succeded for environment: " + environment);
                    }
                }
                else
                {
                    Log.Info("GetPreviousSuccessfulRelease: Skipping. release.id: " + release.id + " not less than releaseId:" + releaseId);
                }
            }
            return(returnObj);
        }
        private ApiObjects.Releases.GetRelease.GetReleaseRootObject GetPreviousSuccessfulRelease(
            string project,
            ApiObjects.Releases.List.Release[] releases,
            int releaseId,
            string environment)
        {
            Log.Info("GetReleaseRootObject() starting");
            GetReleaseRootObject returnObj = null;
            var releasesReverseOrdered     = releases.OrderByDescending(x => x.id);

            Log.Info("iterating all releases in revers order");
            foreach (var release in releasesReverseOrdered)
            {
                Log.Info("release: " + release.id);

                // only look at previous releases
                if (release.id < releaseId)
                {
                    Log.Info("This is a previous release, processing.");
                    // get the full release object so we can see if it successfuly deployed in the environment
                    var theRelease = GetRelease(project, release.id);
                    // check if it deployed successfully in the environment
                    if (theRelease.environments.Any(env => (env.name == environment) && (env.status.ToLower() == "succeeded")))
                    {
                        Log.Info("In this release, found environment: " + environment + " and status succeeded");
                        returnObj = theRelease;
                        break;
                    }
                    else
                    {
                        Log.Info("Release did not have successful environment: " + JsonConvert.SerializeObject(theRelease));
                    }
                }
                else
                {
                    Log.Info("This is not a previous release, ignoring.");
                }
            }
            return(returnObj);
        }