public static DeploymentResource PromoteRelease(string projectName, string releaseVersion, SingleReleasePromotingSettings settings) { var project = new OctoProject(projectName); var sourceEnv = WebClient.GetWebClientRef().GetEnvironmentByName(settings.SourceEnvironmentName); settings.Release = releaseVersion is null ? null : project.GetReleaseByVersion(releaseVersion); return(PromoteRelease(project, sourceEnv, settings)); }
public static DeploymentResource PromoteRelease(string projectName, string sourceEnvName, string targetEnvName, string releaseVersion = null) { var settings = new SingleReleasePromotingSettings() { SourceEnvironmentName = sourceEnvName, TargetEnvironmentName = targetEnvName, WaitingForFinish = true }; return(PromoteRelease(projectName, releaseVersion, settings)); }
/// <summary> /// Promote Release from one environment to another. If the releaseVersion is not specified. /// The release has the latest deployment at sourceEnv will be chosen to deploy to the targetEnv. /// Skip creating the deployment if there is no release at the input Env /// </summary> /// <param name="project"></param> /// <param name="sourceEnv"></param> /// <param name="settings"></param> /// <returns></returns> public static DeploymentResource PromoteRelease(OctoProject project, EnvironmentResource sourceEnv, SingleReleasePromotingSettings settings) { if (settings.Release == null) { var releaseRepo = WebClient.GetWebClientRef().GetReleaseRepo(); var sourceDeploy = project.GetDeployment(sourceEnv); settings.Release = sourceDeploy == null ? null : releaseRepo.Get(sourceDeploy.ReleaseId); } return(settings.Release == null ? null : CreateDeployment(project, settings.Release, new SingleProjectDeploymentSettings(settings))); }
public void PromoteProjects() { var projects = Configs.Property("ProjectsToDeploy"); if (projects == null) { return; } Console.WriteLine("Start to deploy projects"); foreach (var g in projects.Value) { var name = g["Name"]; if (name is null) { continue; } var time = g["DeployAt"]; var settings = new SingleReleasePromotingSettings() { SourceEnvironmentName = SourceEnvironmentName, TargetEnvironmentName = TargetEnvironmentName, SpecificMachineNames = g["SpecificMachineNames"]?.ToObject <string[]>() ?? new string[0], SkipSteps = g["SkipSteps"]?.ToObject <string[]>() ?? new string[0], WaitingForFinish = g["WaitingForFinish"]?.ToObject <bool>() ?? false, UpdateVariableSetNow = g["UpdateVariableSetNow"]?.ToObject <bool>() ?? false, Force = g["Force"]?.ToObject <bool>() ?? false, DeployAt = time == null ? DateTime.Now : DateTime.Parse(time.ToString()) }; Deployments.PromoteRelease(name.ToString(), settings); } }
public static DeploymentResource PromoteRelease(string projectName, SingleReleasePromotingSettings settings) { return(PromoteRelease(projectName, null, settings)); }