public void NuspecFileShouldHaveValuesAfterInstantiation() { NuspecFile file = new NuspecFile("test1.nuspec"); Expect.IsNotNullOrEmpty(file.Version.Value); Expect.AreEqual("1", file.Version.Major); Expect.AreEqual("0", file.Version.Minor); Expect.AreEqual("0", file.Version.Patch); Expect.IsNotNullOrEmpty(file.Title); Expect.IsNotNullOrEmpty(file.Id); Expect.IsNotNullOrEmpty(file.Authors); Expect.IsNotNullOrEmpty(file.Owners); Expect.IsNotNullOrEmpty(file.ReleaseNotes); Expect.IsFalse(file.RequireLicenseAcceptance); Expect.IsNotNullOrEmpty(file.Copyright); Expect.IsNotNullOrEmpty(file.Description); file.AddDependency("monkey", "1.0.0"); file.AddDependency("test", "[2]"); file.Version.IncrementPatch(); file.Save(); string content = file.Path.SafeReadFile(); Out(content, ConsoleColor.Cyan); File.Delete(file.Path); }
public void CanWriteNuspecFile() { NuspecFile testFile = new NuspecFile($"./{nameof(CanWriteNuspecFile)}.nuspec") { Id = "TestId", Version = "1.0.x", Authors = "Bryan Apellanes", Description = "test description" }; FileInfo fileInfo = testFile.Write(); Console.WriteLine(fileInfo.FullName.SafeReadFile()); string expected = "<package xmlns=\"http://schemas.microsoft.com/packaging/2012/06/nuspec.xsd\">\r\n" + " <metadata>\r\n" + " <id>TestId</id>\r\n" + " <version>1.0.x</version>\r\n" + " <authors>Bryan Apellanes</authors>\r\n" + " <description>test description</description>\r\n" + " </metadata>\r\n" + " <files>\r\n" + " <file src=\"_._\" target=\"lib/net5.0\" />\r\n" + " <file src=\"$publishdir$\\net5.0\\**\\*\" target=\"tools/net5.0\" />\r\n" + " </files>\r\n" + "</package>"; Expect.AreEqual(expected, fileInfo.FullName.SafeReadFile()); }
private async Task <int> CreatePackage(NuspecFile nuspecFile, CancellationToken cancellationToken) { var packageStopwatch = Stopwatch.StartNew(); await UpdateNuspec(nuspecFile, cancellationToken); var commandLine = _roboNuGetFile.NuGet.Commands["pack"].Format(new { NuspecFileName = nuspecFile.FileName, OutputDirectoryName = _roboNuGetFile.NuGet.OutputDirectoryName, }); var result = await Task.Run(() => _processExecutor.NoWindowExecuteAsync("nuget", commandLine), cancellationToken); lock (_consoleSyncLock) { //Logger.ConsoleMessageLine(m => m.text($"Executed: {result.Arguments}")); Logger.ConsoleMessageLine(m => m.text(result.Output.Trim())); if (result.ExitCode != ExitCode.Success) { Logger.ConsoleError(result.Error.Trim()); Logger.ConsoleMessageLine(p => p.Indent().text($"Could not create package: {nuspecFile.Id}").color(ConsoleColor.Red)); } //Logger.ConsoleMessageLine(p => p.text($"Elapsed: {packageStopwatch.Elapsed.TotalSeconds:F1} sec [{Thread.CurrentThread.ManagedThreadId}] ({nuspecFile.Id})")); Logger.ConsoleMessageLine(p => p.text($"Elapsed: {packageStopwatch.Elapsed.TotalSeconds:F1} sec")); //Logger.ConsoleMessageLine(p => p.text($"-")); Logger.ConsoleMessageLine(_ => _); } return(result.ExitCode); }
private IEnumerable <string> NuspecFileDepencyIds(string nuspecfileName) { var pathHelper = new TestPathHelper("NuspecTests/NuspecFiles"); string nuspecAbsolutePath = pathHelper.rootToAbsolutePath("~/" + nuspecfileName); var nuspecFile = new NuspecFile(nuspecAbsolutePath); return(nuspecFile.DependencyIds); }
private async Task UpdateNuspec(NuspecFile nuspecFile, CancellationToken cancellationToken) { var updateNuspec = (UpdateNuspec)_commands[ImmutableKeySet <SoftString> .Create(nameof(UpdateNuspec))]; updateNuspec.NuspecFile = nuspecFile; updateNuspec.Version = _roboNuGetFile.PackageVersion; await updateNuspec.ExecuteAsync(cancellationToken); }
public void CanAddPackageDependencies() { NuspecFile nuspec = new NuspecFile(); Expect.IsTrue(nuspec.Dependencies.Length == 0); nuspec.AddPackageDependencies(".\\test_packages.config"); Expect.IsTrue(nuspec.Dependencies.Length == 2); Expect.IsTrue(nuspec.Dependencies[0].Id.Equals("TestPackage1")); Expect.IsTrue(nuspec.Dependencies[0].Version.Equals("1.0.0")); Expect.IsTrue(nuspec.Dependencies[1].Id.Equals("TestPackage2")); Expect.IsTrue(nuspec.Dependencies[1].Version.Equals("2.0.0")); }
public void TestNuspecReader01() { var nuspecFiles = new List <string> { Path.Combine(sampleFileHelper.GetSamplesFolder(), "nuspec", "Fable.Template.Elmish.React.nuspec"), Path.Combine(sampleFileHelper.GetSamplesFolder(), "nuspec", "DevExpress.DotNet.Web.ProjectTemplates.nuspec") }; foreach (var filepath in nuspecFiles) { NuspecFile nuspec = NuspecFile.CreateFromNuspecFile(filepath); Assert.NotNull(nuspec); Assert.True(!string.IsNullOrEmpty(nuspec.Metadata.Id)); } }
public IEnumerable <NuspecFile> FindNuspecFiles() { var nuspecPattern = Pattern.FromWildcard($"*{NuspecFile.Extension}"); var solutionDirectoryName = Path.GetDirectoryName(FindSolutionFile()); var nuspecFileNames = _fileSystem .EnumerateDirectories(solutionDirectoryName, CreateExcludePredicate()) .SelectMany(_fileSystem.EnumerateFiles) .Where(name => nuspecPattern.Matches(name)); // Searching for *.nuspec only one level deep. foreach (var nuspecFileName in nuspecFileNames) { yield return(NuspecFile.Load(nuspecFileName)); } }
public override Task ExecuteAsync(CancellationToken cancellationToken) { var nuspecDirectoryName = Path.GetDirectoryName(NuspecFile.FileName); var packagesConfig = PackagesConfigFile.Load(nuspecDirectoryName); var csProj = CsProjFile.Load(Path.Combine(nuspecDirectoryName, $"{NuspecFile.Id}{CsProjFile.Extension}")); var packageDependencies = packagesConfig.Packages.Concat(csProj.PackageReferences).Select(package => new NuspecDependency { Id = package.Id, Version = package.Version }); var projectDependencies = csProj.ProjectReferences.Select(projectReferenceName => new NuspecDependency { Id = projectReferenceName, Version = Version }); NuspecFile.Dependencies = packageDependencies.Concat(projectDependencies); NuspecFile.Version = Version; NuspecFile.Save(); return(Task.CompletedTask); }
private static List <AssemblyAttributeInfo> GetAssemblyAttributeInfos(string fileName, string version, string nuspecRoot) { List <AssemblyAttributeInfo> _assemblyAttributeInfos = new List <AssemblyAttributeInfo>(); NuspecFile nuspecFile = GetNuspecFile(fileName, nuspecRoot); _assemblyAttributeInfos = new List <AssemblyAttributeInfo>(); _assemblyAttributeInfos.Add(new AssemblyAttributeInfo { AttributeName = "AssemblyVersion", Value = version }); _assemblyAttributeInfos.Add(new AssemblyAttributeInfo { AttributeName = "AssemblyFileVersion", Value = version }); _assemblyAttributeInfos.Add(new AssemblyAttributeInfo { AttributeName = "AssemblyCompany", NuspecFile = nuspecFile, NuspecProperty = "Owners" }); _assemblyAttributeInfos.Add(new AssemblyAttributeInfo { AttributeName = "AssemblyDescription", NuspecFile = nuspecFile, NuspecProperty = "Description" }); return(_assemblyAttributeInfos); }
private static NuspecFile GetNuspecFile(string fileName, string nuspecRoot) { DirectoryInfo nuspecRootDir = new DirectoryInfo(nuspecRoot); FileInfo[] nuspecFiles = nuspecRootDir.GetFiles("{0}.nuspec"._Format(fileName), SearchOption.AllDirectories); string nuspecFilePath = string.Empty; NuspecFile nuspecFile = null; if (nuspecFiles.Length == 1) { nuspecFilePath = nuspecFiles[0].FullName; } else if (nuspecFiles.Length > 1) { nuspecFilePath = SelectNuspecFile(nuspecFiles); } if (!string.IsNullOrEmpty(nuspecFilePath)) { nuspecFile = new NuspecFile(nuspecFilePath); } return(nuspecFile); }
public void PathIsNotNuspec() { Assert.IsFalse(NuspecFile.IsNuspecFile("~/Views/blah.xml")); }
public void PathIsNuspec() { Assert.IsTrue(NuspecFile.IsNuspecFile("~/Views/blah.nuspec")); }
public void Read(string fileName, string id) { _nuspecFile = new NuspecFile(fileName); Assert.Equal(id, _nuspecFile.Id); }
public static void SetBamInfo() { string nuspecRoot = GetNuspecRoot(); string bamInfoPath = (Arguments["baminfo.json"] ?? Prompt("Enter the path to the baminfo.json file")); string versionString = GetVersion(); string srcRoot = GetSourceRoot(); BamInfo info = bamInfoPath.FromJsonFile <BamInfo>(); int sinceMajor = info.MajorVersion; int sinceMinor = info.MinorVersion; int sincePatch = info.PatchVersion; Out("*** baminfo.json ***", ConsoleColor.Cyan); OutLine(info.PropertiesToString(), ConsoleColor.Cyan); OutLine("***", ConsoleColor.Cyan); OutLineFormat("Updating version from {0} to {1}", ConsoleColor.Yellow, info.VersionString, versionString); info.VersionString = versionString; info.ToJsonFile(bamInfoPath); GitReleaseNotes miscReleaseNotes = GitReleaseNotes.MiscSinceVersion(srcRoot, sinceMajor, sinceMinor, sincePatch); miscReleaseNotes.Summary = $"Version {versionString}"; OutLineFormat("Updating release notes:\r\n{0}", ConsoleColor.DarkYellow, info.ReleaseNotes); info.ReleaseNotes = miscReleaseNotes.Value; info.ToJsonFile(bamInfoPath); string rootReleaseNotes = Path.Combine(srcRoot, "RELEASENOTES"); miscReleaseNotes.Value.SafeWriteToFile(rootReleaseNotes, true); DirectoryInfo nuspecRootDir = new DirectoryInfo(nuspecRoot); FileInfo[] nuspecFiles = nuspecRootDir.GetFiles("*.nuspec", SearchOption.AllDirectories); foreach (FileInfo file in nuspecFiles) { NuspecFile nuspecFile = new NuspecFile(file.FullName); nuspecFile.Authors = info.Authors; nuspecFile.Owners = info.Owners; GitReleaseNotes releaseNotes = GitReleaseNotes.SinceVersion(nuspecFile.Id, srcRoot, sinceMajor, sinceMinor, sincePatch); if (!WriteReleaseNotes(srcRoot, releaseNotes, out string projectRoot)) { Warn("Unable to find project directory ({0}) to write release notes", projectRoot); } releaseNotes.Summary = $"Version {versionString}"; nuspecFile.ReleaseNotes = releaseNotes.Value; nuspecFile.Copyright = "Copyright © {0} {1}"._Format(info.Owners, DateTime.UtcNow.Year); nuspecFile.LicenseUrl = info.LicenseUrl; nuspecFile.ProjectUrl = info.ProjectUrl; string buildNumber = !string.IsNullOrEmpty(info.BuildNumber) ? "-{0}"._Format(info.BuildNumber) : ""; string patch = string.Format("{0}{1}", info.PatchVersion.ToString(), buildNumber); nuspecFile.Version.Major = info.MajorVersion.ToString(); nuspecFile.Version.Minor = info.MinorVersion.ToString(); nuspecFile.Version.Patch = patch; List <NugetPackageIdentifier> bamDependencies = new List <NugetPackageIdentifier>(); if (nuspecFile.Dependencies != null) { nuspecFile.Dependencies.Where(npi => npi.Id.StartsWith(typeof(Args).Namespace)).Each(npi => { bamDependencies.Add(new NugetPackageIdentifier(npi.Id, info.VersionString)); }); nuspecFile.Dependencies = bamDependencies.ToArray(); } nuspecFile.Save(); } }