diff --git a/.forgejo/workflows/ci.yml b/.forgejo/workflows/ci.yml
index b4ab074..4fe341f 100644
--- a/.forgejo/workflows/ci.yml
+++ b/.forgejo/workflows/ci.yml
@@ -22,8 +22,11 @@ jobs:
- name: dotnet format check
run: dotnet format arcade.slnx --verify-no-changes --verbosity minimal
+ - name: dotnet pack sdk
+ run: dotnet pack src/sdk/Sdk.slnx -p:Version=${{ steps.version.outputs.version }}
+
- name: dotnet pack
- run: dotnet pack arcade.slnx -p:Version=${{ steps.version.outputs.version }}
+ run: dotnet pack arcade.slnx -p:Version=${{ steps.version.outputs.version }}
- name: dotnet test
run: dotnet test --solution arcade.slnx -p:Version=${{ steps.version.outputs.version }}
diff --git a/.forgejo/workflows/release.yml b/.forgejo/workflows/release.yml
index 9609014..7bfd81a 100644
--- a/.forgejo/workflows/release.yml
+++ b/.forgejo/workflows/release.yml
@@ -19,8 +19,11 @@ jobs:
id: version
uses: ./.forgejo/actions/version
+ - name: dotnet pack sdk
+ run: dotnet pack src/sdk/Sdk.slnx -p:Version=${{ steps.version.outputs.version }}
+
- name: dotnet pack
- run: dotnet pack arcade.slnx -p:Version=${{ steps.version.outputs.version }}
+ run: dotnet pack arcade.slnx -p:Version=${{ steps.version.outputs.version }}
- name: upload packages
uses: https://code.geekeey.de/actions/artifacts/push@ae8d20e174a8706675e6d54ebd3719a2802ea9dd # 1
diff --git a/Directory.Packages.props b/Directory.Packages.props
index 649f17a..accabe6 100644
--- a/Directory.Packages.props
+++ b/Directory.Packages.props
@@ -1,8 +1,8 @@
-
- true
-
-
-
-
-
+
+ true
+
+
+
+
+
\ No newline at end of file
diff --git a/arcade.slnx b/arcade.slnx
index 8850128..ce92a47 100644
--- a/arcade.slnx
+++ b/arcade.slnx
@@ -1,7 +1,3 @@
-
-
-
-
diff --git a/src/sdk.tests/Geekeey.Arcade.NET.Tests.csproj b/src/sdk.tests/Geekeey.Arcade.NET.Tests.csproj
index 9f899a0..2486b7b 100644
--- a/src/sdk.tests/Geekeey.Arcade.NET.Tests.csproj
+++ b/src/sdk.tests/Geekeey.Arcade.NET.Tests.csproj
@@ -2,7 +2,6 @@
net10.0
false
- true
Exe
$(DefaultItemExcludes);$(MSBuildProjectDirectory)/fixtures/**/*
@@ -10,4 +9,8 @@
+
+
+
+
diff --git a/src/sdk.tests/SdkNuGetTests.cs b/src/sdk.tests/SdkNuGetTests.cs
index efe5596..daab200 100644
--- a/src/sdk.tests/SdkNuGetTests.cs
+++ b/src/sdk.tests/SdkNuGetTests.cs
@@ -3,6 +3,7 @@
using System.Text.Json;
using System.Text.Json.Serialization;
+using Geekeey.Arcade.NET.Tests.Shared;
namespace Geekeey.Arcade.NET.Tests;
@@ -20,10 +21,9 @@ internal sealed class SdkNuGetTests
var command = Command.WithWorkingDirectory(path)
.WithThrowOnExit()
.WithEnvironment("DOTNET_CLI_DO_NOT_USE_MSBUILD_SERVER", "1");
- await command.RunAsync("dotnet", "pack", Path.Combine("src", "sdk", "Sdk.slnf"));
+ await command.RunAsync("dotnet", "pack", Path.Combine("src", "sdk", "Sdk.slnx"));
- var search = await command.RunAsync("dotnet", "package", "search", "--format=json", "--source", package,
- "Geekeey.Arcade.NET.Sdk");
+ var search = await command.RunAsync("dotnet", "package", "search", "--format=json", "--source", package, "Geekeey.Arcade.NET.Sdk");
var result = JsonSerializer.Deserialize(search.StdOut)
?? throw new InvalidOperationException("The package search response was empty.");
@@ -50,25 +50,6 @@ internal sealed class SdkNuGetTests
await Assert.That(project.File("bin", "Debug", "net10.0", "project.dll")).Exists();
}
- [Test]
- public async Task TestSdkWritesResultsToArtifactsDirectory()
- {
- // Arrange
- using var project = await CreateProjectFromTemplate("Geekeey.Arcade.NET.Sdk.Test", "test");
- var artifacts = project.Directory("artifacts");
- var build = await project.RunAsync("dotnet", "build", $"-p:ArtifactsPath={artifacts.FullName}");
- await Assert.That(build.ExitCode).IsZero();
-
- // Act
- var test = await project.RunAsync("dotnet", project.File("artifacts", "bin", "project", "debug", "project.dll").FullName);
-
- // Assert
- await Assert.That(test.ExitCode).IsZero();
- await Assert.That(artifacts.GetFiles("*-report.html", SearchOption.AllDirectories)).IsNotEmpty();
- await Assert.That(artifacts.GetFiles("*-tunit-report.json", SearchOption.AllDirectories)).IsNotEmpty();
- await Assert.That(project.Directory("TestResults").Exists).IsFalse();
- }
-
[Test]
[Arguments("Geekeey.Arcade.NET.Sdk", "base")]
[Arguments("Geekeey.Arcade.NET.Sdk.Razor", "razor")]
diff --git a/src/sdk.tests/_shared/Command.cs b/src/sdk.tests/Shared/Command.cs
similarity index 97%
rename from src/sdk.tests/_shared/Command.cs
rename to src/sdk.tests/Shared/Command.cs
index ae84afc..a14b2ed 100644
--- a/src/sdk.tests/_shared/Command.cs
+++ b/src/sdk.tests/Shared/Command.cs
@@ -3,7 +3,7 @@
using System.Diagnostics;
-namespace Geekeey.Arcade.NET.Tests;
+namespace Geekeey.Arcade.NET.Tests.Shared;
internal sealed record Command(string WorkingDirectory, IEnumerable> Environment)
{
diff --git a/src/sdk.tests/_shared/CommandOutput.cs b/src/sdk.tests/Shared/CommandOutput.cs
similarity index 78%
rename from src/sdk.tests/_shared/CommandOutput.cs
rename to src/sdk.tests/Shared/CommandOutput.cs
index 3ba2910..157733d 100644
--- a/src/sdk.tests/_shared/CommandOutput.cs
+++ b/src/sdk.tests/Shared/CommandOutput.cs
@@ -1,6 +1,6 @@
// Copyright (c) The Geekeey Authors
// SPDX-License-Identifier: EUPL-1.2
-namespace Geekeey.Arcade.NET.Tests;
+namespace Geekeey.Arcade.NET.Tests.Shared;
internal sealed record CommandOutput(string StdOut, string StdErr, int ExitCode);
diff --git a/src/sdk.tests/_shared/Project.cs b/src/sdk.tests/Shared/Project.cs
similarity index 97%
rename from src/sdk.tests/_shared/Project.cs
rename to src/sdk.tests/Shared/Project.cs
index 7fb3edb..eee1ec6 100644
--- a/src/sdk.tests/_shared/Project.cs
+++ b/src/sdk.tests/Shared/Project.cs
@@ -1,7 +1,7 @@
// Copyright (c) The Geekeey Authors
// SPDX-License-Identifier: EUPL-1.2
-namespace Geekeey.Arcade.NET.Tests;
+namespace Geekeey.Arcade.NET.Tests.Shared;
internal sealed class Project : IDisposable
{
diff --git a/src/sdk.tests/fixtures/test/project.csproj b/src/sdk.tests/fixtures/test/project.csproj
index 7c47748..7e4f26d 100644
--- a/src/sdk.tests/fixtures/test/project.csproj
+++ b/src/sdk.tests/fixtures/test/project.csproj
@@ -6,6 +6,6 @@
IDE0055
-
+
diff --git a/src/sdk.tests/testconfig.json b/src/sdk.tests/testconfig.json
new file mode 100644
index 0000000..2b97a3f
--- /dev/null
+++ b/src/sdk.tests/testconfig.json
@@ -0,0 +1,5 @@
+{
+ "platformOptions": {
+ "resultDirectory": "../../artifacts/log"
+ }
+}
diff --git a/src/sdk/Sdk.slnf b/src/sdk/Sdk.slnf
deleted file mode 100644
index a8bb8ff..0000000
--- a/src/sdk/Sdk.slnf
+++ /dev/null
@@ -1,11 +0,0 @@
-{
- "solution": {
- "path": "../../arcade.slnx",
- "projects": [
- "src/sdk/Sdk/Geekeey.Arcade.NET.Sdk/Geekeey.Arcade.NET.Sdk.csproj",
- "src/sdk/Sdk/Geekeey.Arcade.NET.Sdk.Razor/Geekeey.Arcade.NET.Sdk.Razor.csproj",
- "src/sdk/Sdk/Geekeey.Arcade.NET.Sdk.Test/Geekeey.Arcade.NET.Sdk.Test.csproj",
- "src/sdk/Sdk/Geekeey.Arcade.NET.Sdk.Web/Geekeey.Arcade.NET.Sdk.Web.csproj"
- ]
- }
-}
diff --git a/src/sdk/Sdk.slnx b/src/sdk/Sdk.slnx
new file mode 100644
index 0000000..b545fea
--- /dev/null
+++ b/src/sdk/Sdk.slnx
@@ -0,0 +1,6 @@
+
+
+
+
+
+
diff --git a/src/sdk/Sdk/Geekeey.Arcade.NET.Sdk.Test/Geekeey.Arcade.NET.Sdk.Test.csproj b/src/sdk/Sdk/Geekeey.Arcade.NET.Sdk.Test/Geekeey.Arcade.NET.Sdk.Test.csproj
index 331bdd6..ef2326b 100644
--- a/src/sdk/Sdk/Geekeey.Arcade.NET.Sdk.Test/Geekeey.Arcade.NET.Sdk.Test.csproj
+++ b/src/sdk/Sdk/Geekeey.Arcade.NET.Sdk.Test/Geekeey.Arcade.NET.Sdk.Test.csproj
@@ -6,9 +6,6 @@
true
false
true
-
- false
MSBuild SDK for test projects with standardized build, analyzer, and editor configuration defaults.
@@ -23,8 +20,5 @@
-
-
-
diff --git a/src/sdk/Sdk/Geekeey.Arcade.NET.Sdk.Test/Sdk.props b/src/sdk/Sdk/Geekeey.Arcade.NET.Sdk.Test/Sdk.props
index 424b3f8..7c6b9dd 100644
--- a/src/sdk/Sdk/Geekeey.Arcade.NET.Sdk.Test/Sdk.props
+++ b/src/sdk/Sdk/Geekeey.Arcade.NET.Sdk.Test/Sdk.props
@@ -14,6 +14,4 @@
-
-
diff --git a/src/sdk/Sdk/Geekeey.Arcade.NET.Sdk.Test/Sdk.targets b/src/sdk/Sdk/Geekeey.Arcade.NET.Sdk.Test/Sdk.targets
index 2dc83c8..c34d867 100644
--- a/src/sdk/Sdk/Geekeey.Arcade.NET.Sdk.Test/Sdk.targets
+++ b/src/sdk/Sdk/Geekeey.Arcade.NET.Sdk.Test/Sdk.targets
@@ -1,5 +1,3 @@
-
-
diff --git a/src/sdk/Sdk/Geekeey.Arcade.NET.Sdk.Test/extensions/TestingPlatformExtensions.cs b/src/sdk/Sdk/Geekeey.Arcade.NET.Sdk.Test/extensions/TestingPlatformExtensions.cs
deleted file mode 100644
index e44ef9a..0000000
--- a/src/sdk/Sdk/Geekeey.Arcade.NET.Sdk.Test/extensions/TestingPlatformExtensions.cs
+++ /dev/null
@@ -1,60 +0,0 @@
-// Copyright (c) The Geekeey Authors
-// SPDX-License-Identifier: EUPL-1.2
-//
-// This file is generated into the test project by Geekeey.Arcade.NET.Sdk.Test.
-//
-
-#nullable enable
-#pragma warning disable TPEXP
-
-using Microsoft.Testing.Platform.Builder;
-using Microsoft.Testing.Platform.CommandLine;
-using Microsoft.Testing.Platform.Configurations;
-
-namespace Geekeey.Arcade.NET.Sdk.Test;
-
-public static class TestingPlatformExtensions
-{
- public static void AddExtensions(ITestApplicationBuilder builder, string[] arguments)
- {
- builder.Configuration.AddConfigurationSource(() => new ResultDirectoryConfigurationSource());
- }
-
- public static class TestingPlatformBuilderHook
- {
- public static void AddExtensions(ITestApplicationBuilder builder, string[] arguments)
- => TestingPlatformExtensions.AddExtensions(builder, arguments);
- }
-
- private sealed class ResultDirectoryConfigurationSource : IConfigurationSource
- {
- public string Uid => "Geekeey.Arcade.NET.Sdk.Test.TestingPlatformExtensions";
- public string Version => "1.0.0";
- public string DisplayName => "Geekeey Arcade Testing Platform extensions";
- public string Description => "Uses the artifacts directory for test results by default.";
-
- public Task IsEnabledAsync() => Task.FromResult(true);
-
- public int Order => 4;
-
- public Task BuildAsync(CommandLineParseResult commandLineParseResult)
- => Task.FromResult(new ResultDirectoryConfigurationProvider());
- }
-
- private sealed class ResultDirectoryConfigurationProvider : IConfigurationProvider
- {
- public Task LoadAsync() => Task.CompletedTask;
-
- public bool TryGet(string key, out string? value)
- {
- if (string.Equals(key, "platformOptions:resultDirectory", StringComparison.OrdinalIgnoreCase))
- {
- value = @"__ARTIFACTS_PATH__";
- return true;
- }
-
- value = null;
- return false;
- }
- }
-}
diff --git a/src/sdk/Sdk/Geekeey.Arcade.NET.Sdk.Test/extensions/TestingPlatformExtensions.props b/src/sdk/Sdk/Geekeey.Arcade.NET.Sdk.Test/extensions/TestingPlatformExtensions.props
deleted file mode 100644
index 506ddc2..0000000
--- a/src/sdk/Sdk/Geekeey.Arcade.NET.Sdk.Test/extensions/TestingPlatformExtensions.props
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
-
- Geekeey Arcade Testing Platform extensions
- Geekeey.Arcade.NET.Sdk.Test.TestingPlatformExtensions.TestingPlatformBuilderHook
-
-
-
diff --git a/src/sdk/Sdk/Geekeey.Arcade.NET.Sdk.Test/extensions/TestingPlatformExtensions.targets b/src/sdk/Sdk/Geekeey.Arcade.NET.Sdk.Test/extensions/TestingPlatformExtensions.targets
deleted file mode 100644
index b864b93..0000000
--- a/src/sdk/Sdk/Geekeey.Arcade.NET.Sdk.Test/extensions/TestingPlatformExtensions.targets
+++ /dev/null
@@ -1,31 +0,0 @@
-
-
- <_ArcadeTestingPlatformExtensionsSourcePath>$(MSBuildThisFileDirectory)../common/source/TestingPlatformExtensions.cs
- <_ArcadeTestingPlatformExtensionsGeneratedPath>$(IntermediateOutputPath)TestingPlatformExtensions.g.cs
-
-
-
-
-
-
-
- <_ArcadeTestingPlatformExtensionsSourceLineWithPath Include="@(_ArcadeTestingPlatformExtensionsSourceLine->Replace('__ARTIFACTS_PATH__', '$(ArtifactsPath)'))" />
-
-
-
-
-
-
-
-
-
-
-