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); }
/// <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); }