public override void Execute() { if (string.IsNullOrWhiteSpace(ProjectName)) { throw new CommandException("Please specify a project name using the parameter: --project=XYZ"); } if (DeployToEnvironmentNames.Count == 0) { throw new CommandException("Please specify an environment using the parameter: --deployto=XYZ"); } if (string.IsNullOrWhiteSpace(VersionNumber)) { throw new CommandException("Please specify a release version using the parameter: --version=1.0.0.0"); } Log.Debug("Finding project: " + ProjectName); var project = Session.GetProject(ProjectName); Log.Debug("Finding environments..."); var environments = Session.FindEnvironments(DeployToEnvironmentNames); Log.Debug("Finding release: " + VersionNumber); var release = Session.GetRelease(project, VersionNumber); if (environments != null) { var linksToDeploymentTasks = Session.GetDeployments(release, environments, Force, Log); if (WaitForDeployment) { deploymentWatcher.WaitForDeploymentsToFinish(Session, linksToDeploymentTasks, DeploymentTimeout, DeploymentStatusCheckSleepCycle); } } }
public override void Execute() { if (string.IsNullOrWhiteSpace(ProjectName)) { throw new CommandException("Please specify a project name using the parameter: --project=XYZ"); } Log.Debug("Finding project: " + ProjectName); var project = Session.GetProject(ProjectName); Log.Debug("Finding environments..."); var environments = Session.FindEnvironments(DeployToEnvironmentNames); Log.Debug("Finding steps for project..."); var steps = Session.FindStepsForProject(project); Log.Debug("Getting package versions for each step..."); var selected = new List <SelectedPackage>(); foreach (var step in steps) { SelectedPackage version; if (string.IsNullOrEmpty(PackageVersionNumber)) { version = Session.GetLatestPackageForStep(step); } else { version = Session.GetPackageForStep(step, PackageVersionNumber); } Log.DebugFormat("{0} - latest: {1}", step.Description, version.NuGetPackageVersion); selected.Add(version); } var versionNumber = VersionNumber; if (string.IsNullOrWhiteSpace(versionNumber)) { versionNumber = selected.Select(p => SemanticVersion.Parse(p.NuGetPackageVersion)).OrderByDescending(v => v).First().ToString(); Log.Warn("A --version parameter was not specified, so a version number was automatically selected based on the highest package version: " + versionNumber); } Log.Debug("Creating release: " + versionNumber); var release = Session.CreateRelease(project, selected, versionNumber, ReleaseNotes); Log.Info("Release created successfully!"); if (environments != null) { var linksToDeploymentTasks = RequestDeployments(release, environments); if (WaitForDeployment) { deploymentWatcher.WaitForDeploymentsToFinish(Session, linksToDeploymentTasks, DeploymentTimeout, DeploymentStatusCheckSleepCycle); } } }
public override void Execute() { if (string.IsNullOrWhiteSpace(ProjectName)) { throw new CommandException("Please specify a project name using the parameter: --project=XYZ"); } Log.Debug("Finding project: " + ProjectName); var project = Session.GetProject(ProjectName); Log.Debug("Finding environments..."); var environments = Session.FindEnvironments(DeployToEnvironmentNames); Log.Debug("Finding steps for project..."); var steps = Session.FindStepsForProject(project); var plan = new ReleasePlan(steps, versionResolver); if (plan.UnresolvedSteps.Count > 0) { Log.Debug("Resolving NuGet package versions..."); foreach (var unresolved in plan.UnresolvedSteps) { Log.Debug(" - Finding latest NuGet package for step: " + unresolved.StepName); unresolved.SetVersionFromLatest(Session.GetLatestPackageForStep(unresolved.Step).NuGetPackageVersion); } } var versionNumber = VersionNumber; if (string.IsNullOrWhiteSpace(versionNumber)) { Log.Warn("A --version parameter was not specified, so a version number was automatically selected based on the highest package version."); versionNumber = plan.GetHighestVersionNumber(); } Log.Info("Release plan for release: " + versionNumber); Log.Info("Steps: "); Log.Info(plan.FormatAsTable()); Log.Debug("Creating release..."); var release = Session.CreateRelease(project, plan.GetSelections(), versionNumber, ReleaseNotes); Log.Info("Release created successfully!"); Log.ServiceMessage("setParameter", new { name = "octo.releaseNumber", value = release.Version }); if (environments == null || environments.Count <= 0) { return; } var linksToDeploymentTasks = Session.GetDeployments(release, environments, Force, ForcePackageDownload, Log).ToList(); if (WaitForDeployment) { deploymentWatcher.WaitForDeploymentsToFinish(Session, linksToDeploymentTasks, DeploymentTimeout, DeploymentStatusCheckSleepCycle); } }