diff --git a/.github/workflows/build-test-deploy.yml b/.github/workflows/build-test-deploy.yml index 0cdea9fe..2786eb0c 100644 --- a/.github/workflows/build-test-deploy.yml +++ b/.github/workflows/build-test-deploy.yml @@ -1,15 +1,8 @@ name: "Build test deploy" -env: - DOTNET_CLI_TELEMETRY_OPTOUT: 1 - DOTNET_SKIP_FIRST_TIME_EXPERIENCE: true - DOTNET_CORE_SDK_VERSION: 6.0.302 - MYGET_ACCESS_TOKEN: ${{ secrets.MYGET_ACCESS_TOKEN }} - MYGET_SOURCE_URL: 'https://www.myget.org/F/lithiumtoast/api/v3/index.json' - on: push: - branches: [develop] + branches: [develop, test/feature] tags: [v*] pull_request: branches: [develop] @@ -17,99 +10,40 @@ on: branches: [develop] jobs: - - version-job: - name: "Version" - runs-on: ubuntu-latest - - steps: - - name: "Checkout Git repository" - uses: actions/checkout@v2 - - - name: "Fetch all history for all tags and branches" - run: git fetch --prune --unshallow - - - name: "Install GitVersion" - uses: gittools/actions/gitversion/setup@v0.9.6 - env: - ACTIONS_ALLOW_UNSECURE_COMMANDS: true # workaround for https://github.blog/changelog/2020-10-01-github-actions-deprecating-set-env-and-add-path-commands/ until the execute action is updated - with: - versionSpec: '5.x' - - - name: "Use GitVersion" - uses: gittools/actions/gitversion/execute@v0.9.6 - - - run: echo "$GitVersion_NuGetVersionV2" >> version.txt - - - name: "Upload NuGetVersion version artifact" - uses: actions/upload-artifact@v2 - with: - name: version - path: version.txt - build-test-pack-job: - name: "Build" - needs: [version-job] - runs-on: ${{ matrix.os }} - strategy: - matrix: - os: [windows-latest, macos-latest, ubuntu-latest] - + name: "Build-Test-Pack" + runs-on: ubuntu-latest steps: + - name: "Clone Repository" + uses: actions/checkout@v4 + - name: "CAKE (Build -> Test -> Package)" + run: dotnet run --project ./build/Build.csproj -- --target=Default + - name: "Upload Artifacts For Deploy" + if: github.event_name != 'pull_request' + uses: actions/upload-artifact@main + with: + name: MonoGame.Extended + path: artifacts/* - - name: "Download version artifact" - uses: actions/download-artifact@v2 - with: - name: version - - - name: "Read Version" - id: version - shell: bash - run: | - echo "VERSION=$(cat version.txt)" >> $GITHUB_ENV - - - name: "Print Version" - shell: bash - run: | - echo $VERSION - - - name: "Checkout repository" - uses: actions/checkout@master - with: - submodules: true - lfs: true - - - name: "Setup .NET Core CLI" - uses: actions/setup-dotnet@v1 - with: - dotnet-version: '${{ env.DOTNET_CORE_SDK_VERSION }}' - - - name: "Install fonts (Ubuntu)" - if: matrix.os == 'ubuntu-latest' - run: | - echo "ttf-mscorefonts-installer msttcorefonts/accepted-mscorefonts-eula select true" | sudo debconf-set-selections - sudo apt-get install -y ttf-mscorefonts-installer - sudo apt-get install -y fontconfig - sudo fc-cache -f -v - sudo fc-match Arial - - - name: "Download NuGet packages" - run: dotnet restore --verbosity quiet - - - name: "Build solution" - run: dotnet build --nologo --verbosity minimal --configuration Release --no-restore /p:Version='${{ env.VERSION }}' - - - name: "Test solution" - run: dotnet test --nologo --verbosity normal --configuration Release --no-build - - - name: "Pack solution" - if: matrix.os == 'ubuntu-latest' && github.event_name == 'push' - run: dotnet pack --nologo --output "./nuget-packages" --verbosity minimal --configuration Release --no-build -p:PackageVersion='${{ env.VERSION }}' - - - name: "Add Packages Source: MyGet" - if: matrix.os == 'ubuntu-latest' && github.event_name == 'push' - run: dotnet nuget add source $MYGET_SOURCE_URL --name "MyGet" - - - name: "Upload Packages: MyGet" - if: matrix.os == 'ubuntu-latest' && github.event_name == 'push' - run: dotnet nuget push "./**/*.nupkg" --source "MyGet" --skip-duplicate --api-key $MYGET_ACCESS_TOKEN + deploy-job: + name: "Deploy Nugets" + runs-on: ubuntu-latest + permissions: + packages: write + contents: write + needs: [build-test-pack-job] + if: ${{ github.event_name == 'push' }} + steps: + - name: "Clone Repository" + uses: actions/checkout@v4 + - name: "Download Artifacts For Deploy" + uses: actions/download-artifact@v3 + with: + name: MonoGame.Extended + path: artifacts + - name: "Push Package" + run: dotnet run --project ./build/Build.csproj -- --target=Deploy + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + MYGET_ACCESS_TOKEN: ${{ secrets.MYGET_ACCESS_TOKEN }} + NUGET_ACCESS_TOKEN: ${{ secrets.NUGET_ACCESS_TOKEN }} diff --git a/.gitignore b/.gitignore index 4006b66e..4c156a7f 100644 --- a/.gitignore +++ b/.gitignore @@ -9,3 +9,6 @@ # macOS .DS_Store *.user + +# cake build output +artifacts diff --git a/Directory.Build.targets b/Directory.Build.targets new file mode 100644 index 00000000..a3d7b9d4 --- /dev/null +++ b/Directory.Build.targets @@ -0,0 +1,20 @@ + + + 3.9.0 + craftworkgames + https://github.com/craftworkgames/MonoGame.Extended + https://github.com/craftworkgames/MonoGame.Extended + git + develop + en + logo-nuget-128.png + README.md + MIT + + + + + + + + diff --git a/build/Build.csproj b/build/Build.csproj new file mode 100644 index 00000000..10f43d07 --- /dev/null +++ b/build/Build.csproj @@ -0,0 +1,11 @@ + + + Exe + net7.0 + enable + $(MSBuildProjectDirectory) + + + + + diff --git a/build/BuildContext.cs b/build/BuildContext.cs new file mode 100644 index 00000000..286eb20c --- /dev/null +++ b/build/BuildContext.cs @@ -0,0 +1,41 @@ +using System.Linq; +using Cake.Common; +using Cake.Common.Build; +using Cake.Common.Xml; +using Cake.Core; +using Cake.Frosting; + +namespace BuildScripts; + +public sealed class BuildContext : FrostingContext +{ + public string ArtifactsDirectory { get; } + public string Version { get; } + public string SolutionPath { get; } + public string? RepositoryOwner { get; } + public string? RepositoryUrl { get; } + public bool IsTag { get; } + public bool IsRunningOnGitHubActions { get; } + public string? GitHubToken { get; } + public string? MyGetAccessToken { get; } + public string? NuGetAccessToken { get; } + + public BuildContext(ICakeContext context) : base(context) + { + ArtifactsDirectory = context.Argument(nameof(ArtifactsDirectory), "artifacts"); + Version = context.XmlPeek("Directory.Build.targets", "/Project/PropertyGroup/Version"); + SolutionPath = "./MonoGame.Extended.sln"; + IsRunningOnGitHubActions = context.BuildSystem().IsRunningOnGitHubActions; + + if (IsRunningOnGitHubActions) + { + Version += "." + context.EnvironmentVariable("GITHUB_RUN_NUMBER"); + RepositoryOwner = context.EnvironmentVariable("GITHUB_REPOSITORY_OWNER"); + RepositoryUrl = $"https://github.com/{context.EnvironmentVariable("GITHUB_REPOSITORY")}"; + IsTag = context.EnvironmentVariable("GITHUB_REF_TYPE") == "tag"; + GitHubToken = context.EnvironmentVariable("GITHUB_TOKEN"); + MyGetAccessToken = context.EnvironmentVariable("MYGET_ACCESS_TOKEN"); + NuGetAccessToken = context.EnvironmentVariable("NUGET_ACCESS_TOKEN"); + } + } +} diff --git a/build/BuildTask.cs b/build/BuildTask.cs new file mode 100644 index 00000000..218c2095 --- /dev/null +++ b/build/BuildTask.cs @@ -0,0 +1,29 @@ +using Cake.Common.Tools.DotNet; +using Cake.Common.Tools.DotNet.Build; +using Cake.Common.Tools.DotNet.MSBuild; +using Cake.Frosting; + +namespace BuildScripts; + +[TaskName(nameof(BuildTask))] +public sealed class BuildTask : FrostingTask +{ + public override void Run(BuildContext context) + { + DotNetMSBuildSettings msBuildSettings = new DotNetMSBuildSettings(); + msBuildSettings.WithProperty("Version", context.Version); + msBuildSettings.WithProperty("NoWarn", "CS1591"); + + + DotNetBuildSettings buildSettings = new DotNetBuildSettings() + { + MSBuildSettings = msBuildSettings, + Configuration = "Release", + Verbosity = DotNetVerbosity.Minimal, + NoRestore = true, + NoLogo = true + }; + + context.DotNetBuild(context.SolutionPath, buildSettings); + } +} diff --git a/build/DeployToGithubTask.cs b/build/DeployToGithubTask.cs new file mode 100644 index 00000000..62981e79 --- /dev/null +++ b/build/DeployToGithubTask.cs @@ -0,0 +1,25 @@ +using Cake.Common.Tools.DotNet; +using Cake.Common.Tools.DotNet.NuGet.Push; +using Cake.Frosting; + +namespace BuildScripts; + +[TaskName(nameof(DeployToGitHubTask))] +public sealed class DeployToGitHubTask : FrostingTask +{ + public override bool ShouldRun(BuildContext context) + { + return context.IsRunningOnGitHubActions; + } + + public override void Run(BuildContext context) + { + DotNetNuGetPushSettings pushSettings = new DotNetNuGetPushSettings() + { + Source = $"https://nuget.pkg.github.com/{context.RepositoryOwner}/index.json", + ApiKey = context.GitHubToken + }; + + context.DotNetNuGetPush("artifacts/*.nupkg", pushSettings); + } +} diff --git a/build/DeployToMyGetTask.cs b/build/DeployToMyGetTask.cs new file mode 100644 index 00000000..c83fe07c --- /dev/null +++ b/build/DeployToMyGetTask.cs @@ -0,0 +1,25 @@ +using Cake.Common.Tools.DotNet; +using Cake.Common.Tools.DotNet.NuGet.Push; +using Cake.Frosting; + +namespace BuildScripts; + +[TaskName(nameof(DeployToMyGetTask))] +public sealed class DeployToMyGetTask : FrostingTask +{ + public override bool ShouldRun(BuildContext context) + { + return context.IsRunningOnGitHubActions; + } + + public override void Run(BuildContext context) + { + DotNetNuGetPushSettings pushSettings = new DotNetNuGetPushSettings() + { + Source = $"https://www.myget.org/F/lithiumtoast/api/v3/index.json", + ApiKey = context.MyGetAccessToken + }; + + context.DotNetNuGetPush("artifacts/*.nupkg", pushSettings); + } +} diff --git a/build/DeployToNuGetTask.cs b/build/DeployToNuGetTask.cs new file mode 100644 index 00000000..84675021 --- /dev/null +++ b/build/DeployToNuGetTask.cs @@ -0,0 +1,27 @@ +using Cake.Common.Tools.DotNet; +using Cake.Common.Tools.DotNet.NuGet.Push; +using Cake.Frosting; + +namespace BuildScripts; + +[TaskName(nameof(DeployToNuGetTask))] +public sealed class DeployToNuGetTask : FrostingTask +{ + public override bool ShouldRun(BuildContext context) + { + return context.IsRunningOnGitHubActions && + context.IsTag && + context.RepositoryOwner == "craftworksgames"; + } + + public override void Run(BuildContext context) + { + DotNetNuGetPushSettings pushSettings = new DotNetNuGetPushSettings() + { + Source = $"https://api.nuget.org/v3/index.json", + ApiKey = context.NuGetAccessToken + }; + + context.DotNetNuGetPush("artifacts/*.nupkg", pushSettings); + } +} diff --git a/build/PackageTask.cs b/build/PackageTask.cs new file mode 100644 index 00000000..b1c56ab4 --- /dev/null +++ b/build/PackageTask.cs @@ -0,0 +1,40 @@ +using Cake.Common.Build; +using Cake.Common.IO; +using Cake.Common.Tools.DotNet; +using Cake.Common.Tools.DotNet.MSBuild; +using Cake.Common.Tools.DotNet.Pack; +using Cake.Core.IO; +using Cake.Frosting; + +namespace BuildScripts; + +[TaskName(nameof(PackageTask))] +public sealed class PackageTask : FrostingTask +{ + public override void Run(BuildContext context) + { + context.CleanDirectories(context.ArtifactsDirectory); + context.CreateDirectory(context.ArtifactsDirectory); + + DotNetMSBuildSettings msBuildSettings = new DotNetMSBuildSettings(); + msBuildSettings.WithProperty("Version", context.Version); + + // Ignore warnings about adding duplicate items added to package + msBuildSettings.WithProperty("NoWarn", "NU5118"); + + DotNetPackSettings packSettings = new DotNetPackSettings() + { + MSBuildSettings = msBuildSettings, + Configuration = "Release", + Verbosity = DotNetVerbosity.Minimal, + NoLogo = true, + OutputDirectory = context.ArtifactsDirectory, + }; + + FilePathCollection files = context.GetFiles("./src/cs/MonoGame.Extended*/**/*.csproj"); + foreach(FilePath file in files) + { + context.DotNetPack(file.FullPath, packSettings); + } + } +} diff --git a/build/Program.cs b/build/Program.cs new file mode 100644 index 00000000..cca32654 --- /dev/null +++ b/build/Program.cs @@ -0,0 +1,34 @@ +using System.Threading.Tasks; +using Cake.Common.Build; +using Cake.Common.IO; +using Cake.Common.Tools.ReportUnit; +using Cake.Core; +using Cake.Core.IO; +using Cake.Frosting; + +namespace BuildScripts; + +public static class Program +{ + public static int Main(string[] args) + { + return new CakeHost() + .UseContext() + .UseWorkingDirectory("../") + .Run(args); + } +} + +[TaskName("Default")] +[IsDependentOn(typeof(RestoreTask))] +[IsDependentOn(typeof(BuildTask))] +[IsDependentOn(typeof(TestTask))] +[IsDependentOn(typeof(PackageTask))] +public sealed class DefaultTask : FrostingTask {} + + +[TaskName("Deploy")] +[IsDependentOn(typeof(DeployToGitHubTask))] +[IsDependentOn(typeof(DeployToMyGetTask))] +[IsDependentOn(typeof(DeployToNuGetTask))] +public sealed class DeployTask : FrostingTask {} diff --git a/build/RestoreTask.cs b/build/RestoreTask.cs new file mode 100644 index 00000000..91c5222c --- /dev/null +++ b/build/RestoreTask.cs @@ -0,0 +1,18 @@ +using Cake.Common.Tools.DotNet; +using Cake.Common.Tools.DotNet.Restore; +using Cake.Frosting; + +namespace BuildScripts; + +public sealed class RestoreTask : FrostingTask +{ + public override void Run(BuildContext context) + { + DotNetRestoreSettings restoreSettings = new DotNetRestoreSettings() + { + Verbosity = DotNetVerbosity.Quiet + }; + + context.DotNetRestore(context.SolutionPath, restoreSettings); + } +} diff --git a/build/TestTask.cs b/build/TestTask.cs new file mode 100644 index 00000000..93af6839 --- /dev/null +++ b/build/TestTask.cs @@ -0,0 +1,22 @@ +using Cake.Common.Tools.DotNet; +using Cake.Common.Tools.DotNet.Test; +using Cake.Frosting; + +namespace BuildScripts; + +[TaskName(nameof(TestTask))] +public class TestTask : FrostingTask +{ + public override void Run(BuildContext context) + { + DotNetTestSettings testSettings = new DotNetTestSettings() + { + Configuration = "Release", + Verbosity = DotNetVerbosity.Normal, + NoLogo = true, + NoBuild = true + }; + + context.DotNetTest(context.SolutionPath, testSettings); + } +} diff --git a/src/cs/MonoGame.Extended.Animations/MonoGame.Extended.Animations.csproj b/src/cs/MonoGame.Extended.Animations/MonoGame.Extended.Animations.csproj index 4cde0df1..62835857 100644 --- a/src/cs/MonoGame.Extended.Animations/MonoGame.Extended.Animations.csproj +++ b/src/cs/MonoGame.Extended.Animations/MonoGame.Extended.Animations.csproj @@ -7,9 +7,6 @@ craftworkgames Animations to make MonoGame more awesome. monogame animations spritesheet sprite - https://github.com/craftworkgames/MonoGame.Extended - https://github.com/craftworkgames/MonoGame.Extended - https://raw.githubusercontent.com/craftworkgames/MonoGame.Extended/master/Logos/logo-nuget-128.png @@ -24,4 +21,4 @@ - \ No newline at end of file + diff --git a/src/cs/MonoGame.Extended.Collisions/MonoGame.Extended.Collisions.csproj b/src/cs/MonoGame.Extended.Collisions/MonoGame.Extended.Collisions.csproj index 2c28c9c7..3585e6bc 100644 --- a/src/cs/MonoGame.Extended.Collisions/MonoGame.Extended.Collisions.csproj +++ b/src/cs/MonoGame.Extended.Collisions/MonoGame.Extended.Collisions.csproj @@ -7,9 +7,6 @@ craftworkgames Collisions to make MonoGame more awesome. monogame collisions - https://github.com/craftworkgames/MonoGame.Extended - https://github.com/craftworkgames/MonoGame.Extended - https://raw.githubusercontent.com/craftworkgames/MonoGame.Extended/master/Logos/logo-nuget-128.png true @@ -26,4 +23,4 @@ All - \ No newline at end of file + diff --git a/src/cs/MonoGame.Extended.Content.Pipeline/MonoGame.Extended.Content.Pipeline.csproj b/src/cs/MonoGame.Extended.Content.Pipeline/MonoGame.Extended.Content.Pipeline.csproj index a2d6ae9c..264c34eb 100644 --- a/src/cs/MonoGame.Extended.Content.Pipeline/MonoGame.Extended.Content.Pipeline.csproj +++ b/src/cs/MonoGame.Extended.Content.Pipeline/MonoGame.Extended.Content.Pipeline.csproj @@ -12,9 +12,6 @@ craftworkgames Content Pipeline importers and processors to make MonoGame more awesome. monogame content importer processor reader tiled texturepacker bmfont animations - https://github.com/craftworkgames/MonoGame.Extended - https://github.com/craftworkgames/MonoGame.Extended - https://raw.githubusercontent.com/craftworkgames/MonoGame.Extended/master/Logos/logo-nuget-128.png @@ -45,4 +42,4 @@ Always - \ No newline at end of file + diff --git a/src/cs/MonoGame.Extended.Entities/MonoGame.Extended.Entities.csproj b/src/cs/MonoGame.Extended.Entities/MonoGame.Extended.Entities.csproj index 4d5ce7c1..8430d91f 100644 --- a/src/cs/MonoGame.Extended.Entities/MonoGame.Extended.Entities.csproj +++ b/src/cs/MonoGame.Extended.Entities/MonoGame.Extended.Entities.csproj @@ -7,9 +7,6 @@ craftworkgames An Entity Component System to make MonoGame more awesome. monogame ecs entity component system - https://github.com/craftworkgames/MonoGame.Extended - https://github.com/craftworkgames/MonoGame.Extended - https://raw.githubusercontent.com/craftworkgames/MonoGame.Extended/master/Logos/logo-nuget-128.png @@ -25,4 +22,4 @@ All - \ No newline at end of file + diff --git a/src/cs/MonoGame.Extended.Graphics/MonoGame.Extended.Graphics.csproj b/src/cs/MonoGame.Extended.Graphics/MonoGame.Extended.Graphics.csproj index c6fb9bbd..8553742b 100644 --- a/src/cs/MonoGame.Extended.Graphics/MonoGame.Extended.Graphics.csproj +++ b/src/cs/MonoGame.Extended.Graphics/MonoGame.Extended.Graphics.csproj @@ -7,9 +7,6 @@ craftworkgames Graphics makes MonoGame more awesome. monogame graphics batcher effects - https://github.com/craftworkgames/MonoGame.Extended - https://github.com/craftworkgames/MonoGame.Extended - https://raw.githubusercontent.com/craftworkgames/MonoGame.Extended/master/Logos/logo-nuget-128.png true @@ -46,4 +43,4 @@ All - \ No newline at end of file + diff --git a/src/cs/MonoGame.Extended.Gui/MonoGame.Extended.Gui.csproj b/src/cs/MonoGame.Extended.Gui/MonoGame.Extended.Gui.csproj index e8364864..d0baf732 100644 --- a/src/cs/MonoGame.Extended.Gui/MonoGame.Extended.Gui.csproj +++ b/src/cs/MonoGame.Extended.Gui/MonoGame.Extended.Gui.csproj @@ -7,9 +7,6 @@ craftworkgames A GUI system for MonoGame written from the ground up to make MonoGame more awesome. monogame gui - https://github.com/craftworkgames/MonoGame.Extended - https://github.com/craftworkgames/MonoGame.Extended - https://raw.githubusercontent.com/craftworkgames/MonoGame.Extended/master/Logos/logo-nuget-128.png true @@ -27,4 +24,4 @@ All - \ No newline at end of file + diff --git a/src/cs/MonoGame.Extended.Input/MonoGame.Extended.Input.csproj b/src/cs/MonoGame.Extended.Input/MonoGame.Extended.Input.csproj index 3c69c1af..67df5b44 100644 --- a/src/cs/MonoGame.Extended.Input/MonoGame.Extended.Input.csproj +++ b/src/cs/MonoGame.Extended.Input/MonoGame.Extended.Input.csproj @@ -7,9 +7,6 @@ craftworkgames An event based input system to MonoGame more awesome. monogame input event based listeners - https://github.com/craftworkgames/MonoGame.Extended - https://github.com/craftworkgames/MonoGame.Extended - https://raw.githubusercontent.com/craftworkgames/MonoGame.Extended/master/Logos/logo-nuget-128.png true @@ -26,4 +23,4 @@ All - \ No newline at end of file + diff --git a/src/cs/MonoGame.Extended.Particles/MonoGame.Extended.Particles.csproj b/src/cs/MonoGame.Extended.Particles/MonoGame.Extended.Particles.csproj index a39b6ab2..48de187c 100644 --- a/src/cs/MonoGame.Extended.Particles/MonoGame.Extended.Particles.csproj +++ b/src/cs/MonoGame.Extended.Particles/MonoGame.Extended.Particles.csproj @@ -7,9 +7,6 @@ craftworkgames A high performance particle system to make MonoGame more awesome. monogame particle system - https://github.com/craftworkgames/MonoGame.Extended - https://github.com/craftworkgames/MonoGame.Extended - https://raw.githubusercontent.com/craftworkgames/MonoGame.Extended/master/Logos/logo-nuget-128.png true @@ -30,4 +27,4 @@ All - \ No newline at end of file + diff --git a/src/cs/MonoGame.Extended.Tiled/MonoGame.Extended.Tiled.csproj b/src/cs/MonoGame.Extended.Tiled/MonoGame.Extended.Tiled.csproj index ece0263b..fe87c77e 100644 --- a/src/cs/MonoGame.Extended.Tiled/MonoGame.Extended.Tiled.csproj +++ b/src/cs/MonoGame.Extended.Tiled/MonoGame.Extended.Tiled.csproj @@ -7,9 +7,6 @@ craftworkgames Support for Tiled maps to make MonoGame more awesome. See http://www.mapeditor.org monogame tiled maps orthographic isometric - https://github.com/craftworkgames/MonoGame.Extended - https://github.com/craftworkgames/MonoGame.Extended - https://raw.githubusercontent.com/craftworkgames/MonoGame.Extended/master/Logos/logo-nuget-128.png @@ -30,4 +27,4 @@ All - \ No newline at end of file + diff --git a/src/cs/MonoGame.Extended.Tweening/MonoGame.Extended.Tweening.csproj b/src/cs/MonoGame.Extended.Tweening/MonoGame.Extended.Tweening.csproj index b0c9c653..434349bc 100644 --- a/src/cs/MonoGame.Extended.Tweening/MonoGame.Extended.Tweening.csproj +++ b/src/cs/MonoGame.Extended.Tweening/MonoGame.Extended.Tweening.csproj @@ -7,9 +7,6 @@ craftworkgames A tweening system to make MonoGame more awesome. monogame animations tweening - https://github.com/craftworkgames/MonoGame.Extended - https://github.com/craftworkgames/MonoGame.Extended - https://raw.githubusercontent.com/craftworkgames/MonoGame.Extended/master/Logos/logo-nuget-128.png @@ -25,4 +22,4 @@ All - \ No newline at end of file + diff --git a/src/cs/MonoGame.Extended/MonoGame.Extended.csproj b/src/cs/MonoGame.Extended/MonoGame.Extended.csproj index c63b9025..52dccbb3 100644 --- a/src/cs/MonoGame.Extended/MonoGame.Extended.csproj +++ b/src/cs/MonoGame.Extended/MonoGame.Extended.csproj @@ -7,9 +7,6 @@ craftworkgames It makes MonoGame more awesome. monogame extended pipeline bmfont tiled texture atlas input viewport fps shapes sprite - https://github.com/craftworkgames/MonoGame.Extended - https://github.com/craftworkgames/MonoGame.Extended - https://raw.githubusercontent.com/craftworkgames/MonoGame.Extended/master/Logos/logo-nuget-128.png true @@ -26,5 +23,5 @@ - - \ No newline at end of file + + diff --git a/src/cs/Tests/MonoGame.Extended.Tests/Collections/BagTests.cs b/src/cs/Tests/MonoGame.Extended.Tests/Collections/BagTests.cs index 471743de..f89b45b7 100644 --- a/src/cs/Tests/MonoGame.Extended.Tests/Collections/BagTests.cs +++ b/src/cs/Tests/MonoGame.Extended.Tests/Collections/BagTests.cs @@ -2,6 +2,7 @@ using System; using System.Collections.Generic; using System.Diagnostics; +using System.Runtime; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; using Xunit; @@ -35,7 +36,12 @@ namespace MonoGame.Extended.Tests.Collections Assert.True(false); } - GC.EndNoGCRegion(); + // Wrap in if statement due to exception thrown when running test through + // cake build script or when debugging test script manually. + if(GCSettings.LatencyMode == GCLatencyMode.NoGCRegion) + { + GC.EndNoGCRegion(); + } } }