diff --git a/.github/workflows/create-release.yml b/.github/workflows/create-release.yml index 29f211c..f3c9fa8 100644 --- a/.github/workflows/create-release.yml +++ b/.github/workflows/create-release.yml @@ -47,7 +47,7 @@ jobs: uses: actions/upload-artifact@v4 with: name: build-artifacts - path: ./.artifacts/**/*.nupkg + path: ./.artifacts/src/**/*.nupkg deploy: name: "Deploy NuGets" diff --git a/AsepriteDotNet.sln b/AsepriteDotNet.sln index d0f0a9c..8b2e50d 100644 --- a/AsepriteDotNet.sln +++ b/AsepriteDotNet.sln @@ -33,13 +33,6 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "benchmarks", "benchmarks", EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ColorProcessingBenchmark", "benchmarks\ColorProcessingBenchmark\ColorProcessingBenchmark.csproj", "{201F4F7E-C68D-400C-AB87-9A77578DDBEB}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "build", "build", "{1515BA5C-6095-4F5F-94E6-7D54D09321DE}" - ProjectSection(SolutionItems) = preProject - build\Directory.Build.props = build\Directory.Build.props - EndProjectSection -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AsepriteDotNet.Build", "build\AsepriteDotNet.Build.csproj", "{27B2E61B-9CA4-44D2-834F-772B7D233D9F}" -EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "workflows", "workflows", "{BC452291-6909-42FE-9343-7FD2F4F4F0E5}" ProjectSection(SolutionItems) = preProject .github\workflows\main.yml = .github\workflows\main.yml @@ -78,10 +71,6 @@ Global {201F4F7E-C68D-400C-AB87-9A77578DDBEB}.Debug|Any CPU.Build.0 = Debug|Any CPU {201F4F7E-C68D-400C-AB87-9A77578DDBEB}.Release|Any CPU.ActiveCfg = Release|Any CPU {201F4F7E-C68D-400C-AB87-9A77578DDBEB}.Release|Any CPU.Build.0 = Release|Any CPU - {27B2E61B-9CA4-44D2-834F-772B7D233D9F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {27B2E61B-9CA4-44D2-834F-772B7D233D9F}.Debug|Any CPU.Build.0 = Debug|Any CPU - {27B2E61B-9CA4-44D2-834F-772B7D233D9F}.Release|Any CPU.ActiveCfg = Release|Any CPU - {27B2E61B-9CA4-44D2-834F-772B7D233D9F}.Release|Any CPU.Build.0 = Release|Any CPU {A6243E15-9D53-4FAB-A2B5-F216614AF832}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {A6243E15-9D53-4FAB-A2B5-F216614AF832}.Debug|Any CPU.Build.0 = Debug|Any CPU {A6243E15-9D53-4FAB-A2B5-F216614AF832}.Release|Any CPU.ActiveCfg = Release|Any CPU @@ -110,7 +99,6 @@ Global {18E8668C-4BF2-4F9B-8016-E1F22BD53BCA} = {B63FA11D-4B29-45F2-AAD9-BF489AEE7BAA} {A289C75E-0BCF-421F-AAE0-050F45AC4F4E} = {5F219449-CE10-4DD9-BBE5-251720F3B5E3} {201F4F7E-C68D-400C-AB87-9A77578DDBEB} = {C4B76AC7-83D0-4F29-BAB9-3C0EAFB31C0D} - {27B2E61B-9CA4-44D2-834F-772B7D233D9F} = {1515BA5C-6095-4F5F-94E6-7D54D09321DE} {BC452291-6909-42FE-9343-7FD2F4F4F0E5} = {2B0F6763-3C96-4753-8E12-6A2975369212} {A6243E15-9D53-4FAB-A2B5-F216614AF832} = {E55B2B0D-9615-434F-942A-6C496A02E617} {E43B057B-37B4-4C77-AC25-376380318AEF} = {E55B2B0D-9615-434F-942A-6C496A02E617} diff --git a/Directory.Build.props b/Directory.Build.props index f5f25fd..63328c2 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -6,15 +6,6 @@ $(MSBuildThisFileDirectory) - - - $(SolutionDirectory).artifacts/ - $(ProjectCategory)/$(MSBuildProjectName) - $(BaseArtifactsPath)obj/$(BaseArtifactsPathSuffix) - $(BaseArtifactsPath)bin/$(BaseArtifactsPathSuffix) - $(BaseArtifactsPath)pkg/$(BaseArtifactsPathSuffix)/$(Configuration)/ - - en diff --git a/build.ps1 b/build.ps1 deleted file mode 100644 index a707719..0000000 --- a/build.ps1 +++ /dev/null @@ -1,2 +0,0 @@ -dotnet run --project build/Build.csproj -- $args -exit $LASTEXITCODE; \ No newline at end of file diff --git a/build.sh b/build.sh deleted file mode 100644 index dfd6b85..0000000 --- a/build.sh +++ /dev/null @@ -1 +0,0 @@ -dotnet run --project ./build/Build.csproj -- "$@" diff --git a/build/AsepriteDotNet.Build.csproj b/build/AsepriteDotNet.Build.csproj deleted file mode 100644 index 4861f2f..0000000 --- a/build/AsepriteDotNet.Build.csproj +++ /dev/null @@ -1,10 +0,0 @@ - - - Exe - net8.0 - $(MSBuildProjectDirectory) - - - - - \ No newline at end of file diff --git a/build/BuildContext.cs b/build/BuildContext.cs deleted file mode 100644 index ba9a60d..0000000 --- a/build/BuildContext.cs +++ /dev/null @@ -1,108 +0,0 @@ -using System.Net.Mime; -using Cake.Common; -using Cake.Common.Build; -using Cake.Common.Build.GitHubActions.Data; -using Cake.Common.IO; -using Cake.Common.Tools.DotNet; -using Cake.Common.Tools.DotNet.Build; -using Cake.Common.Tools.DotNet.MSBuild; -using Cake.Common.Tools.DotNet.Pack; -using Cake.Common.Tools.DotNet.Publish; -using Cake.Common.Tools.MSBuild; -using Cake.Common.Xml; -using Cake.Core; -using Cake.Core.Diagnostics; -using Cake.Core.IO; -using Cake.Frosting; - -namespace AsepriteDotNet.Build; - -public sealed class BuildContext : FrostingContext -{ - private const string DefaultRepositoryUrl = "https://github.com/AristurtleDev/AsepriteDotNet"; - private const string DefaultBuildConfiguration = "Release"; - - - public string Version { get; } - public string BuildOutput { get; } - public string RepositoryUrl { get; } - public string BuildConfiguration { get; } - public bool IsPreRelease { get; } - - public DirectoryPath NuGetsDirectory { get; } - public DotNetMSBuildSettings DotNetMSBuildSettings { get; } - public DotNetPublishSettings DotNetPublishSettings { get; } - public MSBuildSettings MSBuildSettings { get; } - public MSBuildSettings MSPackSettings { get; } - - public BuildContext(ICakeContext context) : base(context) - { - RepositoryUrl = context.Argument(nameof(RepositoryUrl), DefaultRepositoryUrl); - BuildConfiguration = context.Argument(nameof(BuildConfiguration), DefaultBuildConfiguration); - BuildOutput = context.Argument(nameof(BuildOutput), ".artifacts"); - NuGetsDirectory = $"{BuildOutput}/NuGet/"; - IsPreRelease = context.Argument(nameof(IsPreRelease), false); - - Version = context.XmlPeek("Directory.Build.props", "/Project/PropertyGroup/Version"); - if (context.BuildSystem().IsRunningOnGitHubActions) - { - GitHubActionsWorkflowInfo workflow = context.BuildSystem().GitHubActions.Environment.Workflow; - RepositoryUrl = $"https://github.com/{workflow.Repository}"; - - if (!RepositoryUrl.Equals(DefaultRepositoryUrl, StringComparison.OrdinalIgnoreCase)) - { - Version = $"{Version}-{workflow.RepositoryOwner}"; - } - else if (workflow.RefType == GitHubActionsRefType.Branch && !workflow.RefName.Equals("refs/head/main", StringComparison.OrdinalIgnoreCase)) - { - Version = $"{Version}-develop"; - } - else if (IsPreRelease) - { - Version = $"{Version}-prerelease"; - } - else - { - Version = $"{Version}"; - } - } - - DotNetMSBuildSettings = new DotNetMSBuildSettings(); - DotNetMSBuildSettings.WithProperty(nameof(Version), Version); - DotNetMSBuildSettings.WithProperty(nameof(RepositoryUrl), RepositoryUrl); - - MSBuildSettings = new MSBuildSettings - { - Verbosity = Verbosity.Minimal, - Configuration = BuildConfiguration - }; - MSBuildSettings.WithProperty(nameof(Version), Version); - MSBuildSettings.WithProperty(nameof(RepositoryUrl), RepositoryUrl); - - MSPackSettings = new MSBuildSettings() - { - Verbosity = Verbosity.Minimal, - Configuration = BuildConfiguration, - Restore = true - }; - MSPackSettings.WithProperty(nameof(Version), Version); - MSPackSettings.WithProperty(nameof(RepositoryUrl), RepositoryUrl); - MSPackSettings.WithProperty("OutputDirectory", NuGetsDirectory.FullPath); - MSPackSettings.WithTarget("Pack"); - - DotNetPublishSettings = new DotNetPublishSettings() - { - MSBuildSettings = DotNetMSBuildSettings, - Verbosity = DotNetVerbosity.Minimal, - Configuration = BuildConfiguration, - SelfContained = false - }; - - Console.WriteLine($"{nameof(Version)}: {Version}"); - Console.WriteLine($"{nameof(RepositoryUrl)}: {RepositoryUrl}"); - Console.WriteLine($"{nameof(BuildConfiguration)}: {BuildConfiguration}"); - - context.CreateDirectory(BuildOutput); - } - -} diff --git a/build/Directory.Build.props b/build/Directory.Build.props deleted file mode 100644 index 2b254ab..0000000 --- a/build/Directory.Build.props +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - build - - - - - diff --git a/build/Program.cs b/build/Program.cs deleted file mode 100644 index 3f3271b..0000000 --- a/build/Program.cs +++ /dev/null @@ -1,7 +0,0 @@ -using AsepriteDotNet.Build; -using Cake.Frosting; - -return new CakeHost() - .UseWorkingDirectory("../") - .UseContext() - .Run(args); diff --git a/build/Tasks/BuildTask.cs b/build/Tasks/BuildTask.cs deleted file mode 100644 index 4de0829..0000000 --- a/build/Tasks/BuildTask.cs +++ /dev/null @@ -1,23 +0,0 @@ -using Cake.Common.Tools.DotNet; -using Cake.Common.Tools.DotNet.Build; -using Cake.Frosting; - -namespace AsepriteDotNet.Build; - -[TaskName("Build")] -public sealed class BuildTask : FrostingTask -{ - public override void Run(BuildContext context) - { - ArgumentNullException.ThrowIfNull(context); - - DotNetBuildSettings settings = new DotNetBuildSettings() - { - MSBuildSettings = context.DotNetMSBuildSettings, - Verbosity = DotNetVerbosity.Minimal, - Configuration = context.BuildConfiguration - }; - - context.DotNetBuild("./source/AsepriteDotNet/AsepriteDotNet.csproj", settings); - } -} diff --git a/build/Tasks/GitHubTasks/DeployNugetsTask.cs b/build/Tasks/GitHubTasks/DeployNugetsTask.cs deleted file mode 100644 index e3c9377..0000000 --- a/build/Tasks/GitHubTasks/DeployNugetsTask.cs +++ /dev/null @@ -1,29 +0,0 @@ -using Cake.Common; -using Cake.Common.Build; -using Cake.Common.IO; -using Cake.Common.Tools.DotNet; -using Cake.Common.Tools.DotNet.NuGet.Push; -using Cake.Core.IO; -using Cake.Frosting; - -namespace AsepriteDotNet.Build; - -[TaskName("DeployNuGets")] -[IsDependentOn(typeof(DownloadArtifactsTask))] -public sealed class DeployNugetsTask : FrostingTask -{ - public override bool ShouldRun(BuildContext context) => context.BuildSystem().IsRunningOnGitHubActions; - - public override void Run(BuildContext context) - { - ArgumentNullException.ThrowIfNull(context); - - DotNetNuGetPushSettings settings = new DotNetNuGetPushSettings() - { - ApiKey = context.EnvironmentVariable("NUGET_API_KEY"), - Source = "https://api.nuget.org/v3/index.json" - }; - - context.DotNetNuGetPush("nugets/*.nupkg", settings); - } -} diff --git a/build/Tasks/GitHubTasks/DeployNugetsToGithubTask.cs b/build/Tasks/GitHubTasks/DeployNugetsToGithubTask.cs deleted file mode 100644 index f86fb1b..0000000 --- a/build/Tasks/GitHubTasks/DeployNugetsToGithubTask.cs +++ /dev/null @@ -1,30 +0,0 @@ -using Cake.Common; -using Cake.Common.Build; -using Cake.Common.IO; -using Cake.Common.Tools.DotNet; -using Cake.Common.Tools.DotNet.NuGet.Push; -using Cake.Core.IO; -using Cake.Frosting; - -namespace AsepriteDotNet.Build; - -[TaskName("DeployNugetsToGithub")] -[IsDependentOn(typeof(DownloadArtifactsTask))] -public sealed class DeployNugetsToGitHubTask : FrostingTask -{ - public override bool ShouldRun(BuildContext context) => context.BuildSystem().IsRunningOnGitHubActions; - - public override void Run(BuildContext context) - { - ArgumentNullException.ThrowIfNull(context); - - string repositoryOwner = context.GitHubActions().Environment.Workflow.RepositoryOwner; - DotNetNuGetPushSettings settings = new DotNetNuGetPushSettings() - { - ApiKey = context.EnvironmentVariable("GITHUB_TOKEN"), - Source = $"https://nuget.pkg.github.com/{repositoryOwner}/index.json" - }; - - context.DotNetNuGetPush("nugets/*.nupkg", settings); - } -} diff --git a/build/Tasks/GitHubTasks/DownloadArtifactsTask.cs b/build/Tasks/GitHubTasks/DownloadArtifactsTask.cs deleted file mode 100644 index 4fc6dc8..0000000 --- a/build/Tasks/GitHubTasks/DownloadArtifactsTask.cs +++ /dev/null @@ -1,23 +0,0 @@ -using Cake.Common.Build; -using Cake.Common.IO; -using Cake.Core.IO; -using Cake.Frosting; - -namespace AsepriteDotNet.Build; - -[TaskName("DownloadArtifacts")] -public sealed class DownloadArtifactsTask : AsyncFrostingTask -{ - public override bool ShouldRun(BuildContext context) => context.BuildSystem().IsRunningOnGitHubActions; - - public override async Task RunAsync(BuildContext context) - { - ArgumentNullException.ThrowIfNull(context); - string path = "nugets"; - context.CreateDirectory(path); - await context.GitHubActions() - .Commands - .DownloadArtifact(path, path) - .ConfigureAwait(true); - } -} diff --git a/build/Tasks/GitHubTasks/UploadArtifactsTask.cs b/build/Tasks/GitHubTasks/UploadArtifactsTask.cs deleted file mode 100644 index 55531dc..0000000 --- a/build/Tasks/GitHubTasks/UploadArtifactsTask.cs +++ /dev/null @@ -1,22 +0,0 @@ -using Cake.Common.Build; -using Cake.Core.IO; -using Cake.Frosting; - -namespace AsepriteDotNet.Build; - -[TaskName("UploadArtifacts")] -public sealed class UploadArtifactsTask : AsyncFrostingTask -{ - public override bool ShouldRun(BuildContext context) => context.BuildSystem().IsRunningOnGitHubActions; - - public override async Task RunAsync(BuildContext context) - { - ArgumentNullException.ThrowIfNull(context); - DirectoryPath path = context.NuGetsDirectory.FullPath; - string artifactName = "nugets"; - await context.GitHubActions() - .Commands - .UploadArtifact(path, artifactName) - .ConfigureAwait(true); - } -} diff --git a/build/Tasks/PackTask.cs b/build/Tasks/PackTask.cs deleted file mode 100644 index 4dcb248..0000000 --- a/build/Tasks/PackTask.cs +++ /dev/null @@ -1,23 +0,0 @@ -using Cake.Common.Tools.DotNet; -using Cake.Common.Tools.DotNet.Pack; -using Cake.Frosting; - -namespace AsepriteDotNet.Build; - -[TaskName("Pack")] -public sealed class PackTask : FrostingTask -{ - public override void Run(BuildContext context) - { - ArgumentNullException.ThrowIfNull(context); - DotNetPackSettings settings = new DotNetPackSettings() - { - MSBuildSettings = context.DotNetMSBuildSettings, - Verbosity = DotNetVerbosity.Minimal, - OutputDirectory = context.NuGetsDirectory, - Configuration = context.BuildConfiguration - }; - - context.DotNetPack("./source/AsepriteDotNet/AsepriteDotNet.csproj", settings); - } -} diff --git a/build/Tasks/Tasks.cs b/build/Tasks/Tasks.cs deleted file mode 100644 index 04223ea..0000000 --- a/build/Tasks/Tasks.cs +++ /dev/null @@ -1,9 +0,0 @@ -using Cake.Frosting; - -namespace AsepriteDotNet.Build; - -[TaskName("Default")] -[IsDependentOn(typeof(BuildTask))] -[IsDependentOn(typeof(TestTask))] -[IsDependentOn(typeof(PackTask))] -public sealed class DefaultTask : FrostingTask { } diff --git a/build/Tasks/TestTask.cs b/build/Tasks/TestTask.cs deleted file mode 100644 index ab6e1ac..0000000 --- a/build/Tasks/TestTask.cs +++ /dev/null @@ -1,24 +0,0 @@ -using Cake.Common.Tools.DotNet; -using Cake.Common.Tools.DotNet.Build; -using Cake.Common.Tools.DotNet.Test; -using Cake.Frosting; - -namespace AsepriteDotNet.Build; - -[TaskName("Test")] -public sealed class TestTask : FrostingTask -{ - public override void Run(BuildContext context) - { - ArgumentNullException.ThrowIfNull(context); - - DotNetTestSettings settings = new DotNetTestSettings() - { - MSBuildSettings = context.DotNetMSBuildSettings, - Verbosity = DotNetVerbosity.Minimal, - Configuration = context.BuildConfiguration - }; - - context.DotNetTest("./tests/AsepriteDotNet.Tests/AsepriteDotNet.Tests.csproj", settings); - } -} diff --git a/source/Directory.Build.props b/source/Directory.Build.props index ae71fe0..b82a5e8 100644 --- a/source/Directory.Build.props +++ b/source/Directory.Build.props @@ -1,19 +1,11 @@ - - - source - + - - true - - - - + $(SolutionDirectory).artifacts/src Copyright © 2024 Christopher Whitley Christopher Whitley and contributors Aristurtle @@ -30,6 +22,4 @@ true - - diff --git a/tests/Directory.Build.props b/tests/Directory.Build.props index 352b31f..22f4451 100644 --- a/tests/Directory.Build.props +++ b/tests/Directory.Build.props @@ -1,19 +1,9 @@ - - - test - - - - + $(SolutionDirectory).artifacts/tests false - - - - true false