diff --git a/Build/.nuke/build.schema.json b/Build/.nuke/build.schema.json index 5e858b7..060ffca 100644 --- a/Build/.nuke/build.schema.json +++ b/Build/.nuke/build.schema.json @@ -1,50 +1,217 @@ { "$schema": "http://json-schema.org/draft-04/schema#", - "$ref": "#/definitions/build", - "title": "Build Schema", "definitions": { - "build": { + "Host": { + "type": "string", + "enum": [ + "AppVeyor", + "AzurePipelines", + "Bamboo", + "Bitbucket", + "Bitrise", + "GitHubActions", + "GitLab", + "Jenkins", + "Rider", + "SpaceAutomation", + "TeamCity", + "Terminal", + "TravisCI", + "VisualStudio", + "VSCode" + ] + }, + "IssConfiguration": { "type": "object", + "properties": { + "Title": { + "type": [ + "null", + "string" + ] + }, + "Image": { + "type": [ + "null", + "string" + ] + }, + "ImageSmall": { + "type": [ + "null", + "string" + ] + }, + "Icon": { + "type": [ + "null", + "string" + ] + }, + "Licence": { + "type": [ + "null", + "string" + ] + }, + "Language": { + "oneOf": [ + { + "type": "null" + }, + { + "$ref": "#/definitions/IssLanguage" + } + ] + }, + "IssLanguageLicences": { + "type": [ + "array", + "null" + ], + "items": { + "$ref": "#/definitions/IssLanguageLicence" + } + } + } + }, + "IssLanguage": { + "type": "object", + "properties": { + "Name": { + "type": [ + "null", + "string" + ] + }, + "MessagesFile": { + "type": [ + "null", + "string" + ] + } + } + }, + "IssLanguageLicence": { + "type": "object", + "properties": { + "Name": { + "type": [ + "null", + "string" + ] + }, + "MessagesFile": { + "type": [ + "null", + "string" + ] + }, + "Licence": { + "type": [ + "null", + "string" + ] + } + } + }, + "ExecutableTarget": { + "type": "string", + "enum": [ + "Build", + "Clean", + "Compile", + "GitPreRelease", + "GitRelease", + "Pack", + "PackageBuilder", + "PrePack", + "Release", + "Sign", + "Test" + ] + }, + "Verbosity": { + "type": "string", + "description": "", + "enum": [ + "Verbose", + "Normal", + "Minimal", + "Quiet" + ] + }, + "NukeBuild": { "properties": { "Continue": { "type": "boolean", "description": "Indicates to continue a previously failed build attempt" }, - "Folder": { - "type": "string" - }, - "GitHubToken": { - "type": "string", - "default": "Secrets must be entered via 'nuke :secrets [profile]'" - }, "Help": { "type": "boolean", "description": "Shows the help text for this build assembly" }, "Host": { - "type": "string", "description": "Host for execution. Default is 'automatic'", - "enum": [ - "AppVeyor", - "AzurePipelines", - "Bamboo", - "Bitbucket", - "Bitrise", - "GitHubActions", - "GitLab", - "Jenkins", - "Rider", - "SpaceAutomation", - "TeamCity", - "Terminal", - "TravisCI", - "VisualStudio", - "VSCode" - ] + "$ref": "#/definitions/Host" }, - "IssConfiguration": { + "NoLogo": { + "type": "boolean", + "description": "Disables displaying the NUKE logo" + }, + "Partition": { + "type": "string", + "description": "Partition to use on CI" + }, + "Plan": { + "type": "boolean", + "description": "Shows the execution plan (HTML)" + }, + "Profile": { + "type": "array", + "description": "Defines the profiles to load", + "items": { + "type": "string" + } + }, + "Root": { + "type": "string", + "description": "Root directory during build execution" + }, + "Skip": { + "type": "array", + "description": "List of targets to be skipped. Empty list skips all dependencies", + "items": { + "$ref": "#/definitions/ExecutableTarget" + } + }, + "Target": { + "type": "array", + "description": "List of targets to be invoked. Default is '{default_target}'", + "items": { + "$ref": "#/definitions/ExecutableTarget" + } + }, + "Verbosity": { + "description": "Logging verbosity during build execution. Default is 'Normal'", + "$ref": "#/definitions/Verbosity" + } + } + } + }, + "allOf": [ + { + "properties": { + "Folder": { "type": "string" }, + "GitHubToken": { + "type": "string", + "default": "Secrets must be entered via 'nuke :secrets [profile]'" + }, + "IssConfiguration": { + "$ref": "#/definitions/IssConfiguration" + }, "MainName": { "type": "string" }, @@ -54,10 +221,6 @@ "NewVersions": { "type": "boolean" }, - "NoLogo": { - "type": "boolean", - "description": "Disables displaying the NUKE logo" - }, "NugetApiKey": { "type": "string", "default": "Secrets must be entered via 'nuke :secrets [profile]'" @@ -66,27 +229,12 @@ "type": "string", "default": "Secrets must be entered via 'nuke :secrets [profile]'" }, - "Partition": { - "type": "string", - "description": "Partition to use on CI" - }, - "Plan": { - "type": "boolean", - "description": "Shows the execution plan (HTML)" - }, "PreReleaseFilter": { "type": "array", "items": { "type": "string" } }, - "Profile": { - "type": "array", - "description": "Defines the profiles to load", - "items": { - "type": "string" - } - }, "ProjectNameFolder": { "type": "boolean" }, @@ -108,10 +256,6 @@ "ReleasePackageBuilder": { "type": "boolean" }, - "Root": { - "type": "string", - "description": "Root directory during build execution" - }, "SignFile": { "type": "string", "default": "Secrets must be entered via 'nuke :secrets [profile]'" @@ -120,50 +264,10 @@ "type": "string", "default": "Secrets must be entered via 'nuke :secrets [profile]'" }, - "Skip": { - "type": "array", - "description": "List of targets to be skipped. Empty list skips all dependencies", - "items": { - "type": "string", - "enum": [ - "Build", - "Clean", - "Compile", - "GitPreRelease", - "GitRelease", - "Pack", - "PackageBuilder", - "PrePack", - "Release", - "Sign", - "Test" - ] - } - }, "Solution": { "type": "string", "description": "Path to a solution file that is automatically loaded" }, - "Target": { - "type": "array", - "description": "List of targets to be invoked. Default is '{default_target}'", - "items": { - "type": "string", - "enum": [ - "Build", - "Clean", - "Compile", - "GitPreRelease", - "GitRelease", - "Pack", - "PackageBuilder", - "PrePack", - "Release", - "Sign", - "Test" - ] - } - }, "TestBuildStopWhenFailed": { "type": "boolean" }, @@ -181,18 +285,11 @@ }, "VendorId": { "type": "string" - }, - "Verbosity": { - "type": "string", - "description": "Logging verbosity during build execution. Default is 'Normal'", - "enum": [ - "Minimal", - "Normal", - "Quiet", - "Verbose" - ] } } + }, + { + "$ref": "#/definitions/NukeBuild" } - } + ] } diff --git a/CHANGELOG.md b/CHANGELOG.md index 69ca353..347a72c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,12 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html). +## [1.7.2] / 2024-11-20 +### Updated +- Update `ricaun.Nuke` to `1.8.2` +- Update `FileSystemTasks.CopyFileToDirectory` to `AbsolutePathExtensions.CopyToDirectory`. +- Update `FileSystemTasks.CopyDirectoryRecursively` to `AbsolutePathExtensions.Copy`. + ## [1.7.1] / 2024-05-13 ### Updated - Update `ricaun.Nuke` to `1.8.1` @@ -293,6 +299,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0. - First Release [vNext]: ../../compare/1.0.0...HEAD +[1.7.2]: ../../compare/1.7.1...1.7.2 [1.7.1]: ../../compare/1.7.0...1.7.1 [1.7.0]: ../../compare/1.6.4...1.7.0 [1.6.4]: ../../compare/1.6.3...1.6.4 diff --git a/Directory.Build.props b/Directory.Build.props index 3677869..cc9d25a 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -1,5 +1,5 @@ - 1.7.1 + 1.7.2 \ No newline at end of file diff --git a/README.md b/README.md index 57b9e5d..97dc25f 100644 --- a/README.md +++ b/README.md @@ -81,7 +81,7 @@ IssConfiguration IHazInstallationFiles.IssConfiguration => new IssConfiguration( ## License -This package is [licensed](LICENSE) under the [MIT Licence](https://en.wikipedia.org/wiki/MIT_License). +This package is [licensed](LICENSE) under the [MIT License](https://en.wikipedia.org/wiki/MIT_License). --- diff --git a/ricaun.Nuke.PackageBuilder/Components/IHazInstallationFiles.cs b/ricaun.Nuke.PackageBuilder/Components/IHazInstallationFiles.cs index 417f18d..13c12bc 100644 --- a/ricaun.Nuke.PackageBuilder/Components/IHazInstallationFiles.cs +++ b/ricaun.Nuke.PackageBuilder/Components/IHazInstallationFiles.cs @@ -49,7 +49,7 @@ public void CopyInstallationFilesTo(AbsolutePath packageBuilderDirectory) DownloadFilesAndUnzip(InstallationFiles, packageBuilderDirectory); Globbing.GlobFiles(InstallationFilesDirectory, "*") - .ForEach(file => FileSystemTasks.CopyFileToDirectory(file, packageBuilderDirectory)); + .ForEach(file => AbsolutePathExtensions.CopyToDirectory(file, packageBuilderDirectory)); } /// diff --git a/ricaun.Nuke.PackageBuilder/Components/Revit/IRevitPackageBuilder.cs b/ricaun.Nuke.PackageBuilder/Components/Revit/IRevitPackageBuilder.cs index bedffb3..5858727 100644 --- a/ricaun.Nuke.PackageBuilder/Components/Revit/IRevitPackageBuilder.cs +++ b/ricaun.Nuke.PackageBuilder/Components/Revit/IRevitPackageBuilder.cs @@ -70,7 +70,7 @@ public void CreatePackageBuilder(Project project, bool releasePackageBuilder = f if (ProjectVersionFolder) ContentsDirectory = ContentsDirectory / projectVersion; - FileSystemTasks.CopyDirectoryRecursively(InputDirectory, ContentsDirectory); + AbsolutePathExtensions.Copy(InputDirectory, ContentsDirectory); if (ProjectRemoveTargetFrameworkFolder) { @@ -135,7 +135,7 @@ public void CreatePackageBuilder(Project project, bool releasePackageBuilder = f if (outputInno != ReleaseDirectory) { Globbing.GlobFiles(outputInno, "**/*.zip") - .ForEach(file => FileSystemTasks.CopyFileToDirectory(file, ReleaseDirectory)); + .ForEach(file => AbsolutePathExtensions.CopyToDirectory(file, ReleaseDirectory)); } var folder = Path.GetFileName(PackageBuilderDirectory); @@ -197,7 +197,7 @@ private AbsolutePath GetMaxPathFolderOrTempFolder(AbsolutePath packageBuilderDir if (max >= MAX_PATH) { if (temp.DirectoryExists()) temp.DeleteDirectory(); - FileSystemTasks.CopyDirectoryRecursively(packageBuilderDirectory, temp); + AbsolutePathExtensions.Copy(packageBuilderDirectory, temp); var limit = max - file.ToString().Length + temp.ToString().Length; Serilog.Log.Information($"Path Max: {limit} - {temp}"); return (AbsolutePath)temp; diff --git a/ricaun.Nuke.PackageBuilder/Extensions/AppendTargetFrameworkExtension.cs b/ricaun.Nuke.PackageBuilder/Extensions/AppendTargetFrameworkExtension.cs index d10f234..0ea10b2 100644 --- a/ricaun.Nuke.PackageBuilder/Extensions/AppendTargetFrameworkExtension.cs +++ b/ricaun.Nuke.PackageBuilder/Extensions/AppendTargetFrameworkExtension.cs @@ -25,7 +25,7 @@ public static void RemoveAppendTargetFrameworkDirectory(AbsolutePath contentsDir { Serilog.Log.Information($"CopyDirectoryRecursively: {directoryName} to {targetFrameworkDirectory.Parent.Name}"); Serilog.Log.Information($"RemoveTargetFrameworkDirectory: {directoryName} move to {targetFrameworkDirectory.Parent.Name}"); - FileSystemTasks.CopyDirectoryRecursively(targetFrameworkDirectory, targetFrameworkDirectory.Parent, DirectoryExistsPolicy.Merge); + AbsolutePathExtensions.Copy(targetFrameworkDirectory, targetFrameworkDirectory.Parent, ExistsPolicy.DirectoryMerge); targetFrameworkDirectory.DeleteDirectory(); } }