示例#1
0
        public void ProvisionServers()
        {
            var devops = Configs.Property("DevOpsProjects");

            if (devops == null)
            {
                return;
            }

            var devopsProjects = devops.Value;

            if (!devopsProjects.Contains("NeedReboot"))
            {
                return;
            }
            var needReboot = devopsProjects["NeedReboot"];
            var settings   = new MultiReleasePromotingSettings()
            {
                SourceEnvironmentName     = SourceEnvironmentName,
                TargetEnvironmentName     = TargetEnvironmentName,
                WaitingForFinish          = true,
                NeedRebootAfterDeployment = true
            };

            ChainDeployments.PromoteReleases(needReboot.ToObject <string[]>(), settings);

            if (!devopsProjects.Contains("others"))
            {
                return;
            }
            var others = devopsProjects["others"];

            settings.NeedRebootAfterDeployment = false;
            ChainDeployments.PromoteReleases(others.ToObject <string[]>(), settings);
        }
示例#2
0
        /// <summary>
        /// Promote Releases of a variety of project in the list projectNames from sourceEnv To targetEnv.
        /// By default, it will begin to deploy every projects immediately.
        /// The mandatory vars in settings are SourceEnvironmentName and TargetEnvironmentName
        /// </summary>
        /// <param name="projectNames">The list of projects name</param>
        /// <param name="settings">MultiReleasePromotingSettings to control the deployment</param>
        /// <returns>a list of the deploymentRecourse</returns>
        public static List <DeploymentResource> PromoteReleases(string[] projectNames,
                                                                MultiReleasePromotingSettings settings)
        {
            if (settings.SourceEnvironmentName == null || settings.TargetEnvironmentName == null)
            {
                throw new DeploymentSettingsMissingException("Please make sure both envs name are set up");
            }

            var deployments = new List <DeploymentResource>();

            foreach (var projectName in projectNames)
            {
                deployments.Add(Deployments.PromoteRelease(projectName, settings));
            }

            return(deployments);
        }