protected virtual IConfiguration GetSampleConfig() { return(new Configuration { ApiKey = languageProvider.GetString(LanguageSection.ConfigurationStrings, "SampleApiKey"), ChannelSeedProjectName = languageProvider.GetString(LanguageSection.ConfigurationStrings, "SampleChannelSeedAppName"), OctopusUrl = languageProvider.GetString(LanguageSection.ConfigurationStrings, "SampleOctopusUrl"), ProjectGroupFilterString = languageProvider.GetString(LanguageSection.ConfigurationStrings, "SampleProjectGroupFilterString"), DefaultChannel = "master" }); }
public void AddRow(bool selected, bool selectable = true, params string[] values) { if (values.Count() != _columns.Count()) { throw new Exception(String.Format(_languageProvider.GetString(LanguageSection.UiStrings, "ErrorColumnHeadingMismatch"), values.Count(), _columns.Count())); } _rows.Add(values); if (selected && selectable) { _selected.Add(_rows.Count() - 1); } if (!selectable) { _unselectable.Add(_rows.Count() - 1); } }
/// <summary> /// Gets the string. /// </summary> /// <param name="name">The name.</param> /// <returns>Localized string if found; otherwise the requested name.</returns> public static string GetString(string name) { var providers = _providers; foreach (var provider in providers) { var str = provider.GetString(name); if (str != null) { return(str); } } return(_default.GetString(name) ?? name); }
private static void ShowNewVersionMessage(VersionCheckResult checkResult, ILanguageProvider languageProvider) { System.Console.WriteLine("-------------------------------------"); System.Console.WriteLine(languageProvider.GetString(LanguageSection.UiStrings, "NewVersionAvailable")); System.Console.WriteLine(string.Format(languageProvider.GetString(LanguageSection.UiStrings, "CurrentVersion"), checkResult.Release.CurrentVersion)); System.Console.WriteLine(string.Format(languageProvider.GetString(LanguageSection.UiStrings, "NewVersion"), checkResult.Release.TagName)); if (checkResult.Release.Assets != null && checkResult.Release.Assets.Any()) { foreach (var asset in checkResult.Release.Assets) { System.Console.WriteLine(string.Format(languageProvider.GetString(LanguageSection.UiStrings, "DownloadAvailableHere"), asset.Name, asset.DownloadUrl)); } } else { System.Console.WriteLine(string.Format(languageProvider.GetString(LanguageSection.UiStrings, "UpdateAvailableHere"), checkResult.Release.Url)); } if (!string.IsNullOrEmpty(checkResult.Release.ChangeLog)) { System.Console.WriteLine(languageProvider.GetString(LanguageSection.UiStrings, "ChangeLog")); System.Console.WriteLine(checkResult.Release.ChangeLog); } System.Console.WriteLine("-------------------------------------"); }
public async Task StartJob(string pathToProfile, string message, string releaseVersion, bool forceDeploymentIfSamePackage) { if (!File.Exists(pathToProfile)) { this.WriteLine("Couldn't find file at " + pathToProfile); return; } try { var job = StandardSerialiser.DeserializeFromJsonNet <EnvironmentDeployment>(File.ReadAllText(pathToProfile)); var projects = new List <ProjectDeployment>(); foreach (var project in job.ProjectDeployments) { var octoProject = await this.helper.GetProject(project.ProjectId, job.EnvironmentId, project.ChannelVersionRange, project.ChannelVersionTag); var packages = await this.helper.GetPackages(octoProject.ProjectId, project.ChannelVersionRange, project.ChannelVersionTag); IList <PackageStep> defaultPackages = null; foreach (var package in project.Packages) { if (package.PackageId == "latest") { // Filter to packages specifically for this package step, then update the package versions var availablePackages = packages.Where(pack => pack.StepId == package.StepId); // If there are no packages for this step, check if we've been asked to jump back to default channel. if ((!availablePackages.Any() || availablePackages.First().SelectedPackage == null) && job.FallbackToDefaultChannel && !string.IsNullOrEmpty(configuration.DefaultChannel)) { if (defaultPackages == null) { var defaultChannel = await this.helper.GetChannelByName(project.ProjectId, configuration.DefaultChannel); defaultPackages = await this.helper.GetPackages(project.ProjectId, defaultChannel.VersionRange, defaultChannel.VersionTag); // We're now using the default channel, so update the project release to have the correct channel info for the deployment. project.ChannelId = defaultChannel.Id; project.ChannelName = defaultChannel.Name; project.ChannelVersionRange = defaultChannel.VersionRange; project.ChannelVersionTag = defaultChannel.VersionTag; } availablePackages = defaultPackages.Where(pack => pack.StepId == package.StepId); } var selectedPackage = availablePackages.First().SelectedPackage; if (selectedPackage != null) { package.PackageId = selectedPackage.Id; package.PackageName = selectedPackage.Version; package.StepName = selectedPackage.StepName; } else { System.Console.Out.WriteLine(string.Format(languageProvider.GetString(LanguageSection.UiStrings, "NoSuitablePackageFound"), package.StepName, project.ProjectName)); continue; } } } if (!forceDeploymentIfSamePackage) { if (!await IsDeploymentRequired(job, project)) { continue; } } if (!string.IsNullOrEmpty(message)) { project.ReleaseMessage = message; } if (!string.IsNullOrEmpty(releaseVersion)) { project.ReleaseVersion = releaseVersion; } projects.Add(project); } job.ProjectDeployments = projects; await this.deployer.StartJob(job, this, true); } catch (Exception e) { this.WriteLine("Couldn't deploy! " + e.Message + e.StackTrace); } }