Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 0 additions & 16 deletions .github/workflows/test-libplctagNativeImport.yml

This file was deleted.

2 changes: 0 additions & 2 deletions .nuke/build.schema.json
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,6 @@
"PackLibplctagNativeImport",
"ReleaseAll",
"TestLibplctag",
"TestLibplctagNativeImport",
"UpdateCoreBinaries"
]
}
Expand All @@ -108,7 +107,6 @@
"PackLibplctagNativeImport",
"ReleaseAll",
"TestLibplctag",
"TestLibplctagNativeImport",
"UpdateCoreBinaries"
]
}
Expand Down
91 changes: 3 additions & 88 deletions build/Build.cs
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,6 @@ class Build : NukeBuild

AbsolutePath SourceDirectory => RootDirectory / "src";
AbsolutePath ArtifactsDirectory => RootDirectory / "artifacts";
AbsolutePath PackageRestoreDirectory => SourceDirectory / "packages";
Project libplctag => Solution.GetProject("libplctag");
Project libplctag_NativeImport => Solution.GetProject("libplctag.NativeImport");

Expand All @@ -39,7 +38,6 @@ class Build : NukeBuild
{
SourceDirectory.GlobDirectories("**/bin", "**/obj")
.Concat(ArtifactsDirectory)
.Concat(PackageRestoreDirectory)
.ForEach(dir =>
{
Log.Debug("Deleting {0}", dir);
Expand Down Expand Up @@ -73,92 +71,8 @@ class Build : NukeBuild
});


Target TestLibplctagNativeImport => _ => _
.DependsOn(PackLibplctagNativeImport)
.DependsOn(PackLibplctag)
.Executes(() =>
{

// This nuget.config file ensures that libplctag and libplctag.NativeImport are restored from the
// newly created and packed packages on disk, but still allows all other packages to be
// downloaded from the remote nuget feed.
var nuget_config_contents = $"""
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<packageSources>
<clear />
<add key="nuget.org" value="https://api.nuget.org/v3/index.json" />
<add key="buildArtifacts" value="{ArtifactsDirectory}" />
</packageSources>

<packageSourceMapping>
<packageSource key="nuget.org">
<package pattern="Microsoft.*" />
<package pattern="System.*" />
<package pattern="xunit*" />
<package pattern="coverlet*" />
<package pattern="runtime.*" />
<package pattern="newtonsoft.json" />
<package pattern="nuget.*" />
<package pattern="mstest.*" />
</packageSource>
<packageSource key="buildArtifacts">
<package pattern="libplctag" />
<package pattern="libplctag.NativeImport" />
</packageSource>
</packageSourceMapping>
</configuration>
""";

var netCoreDirect = Solution.GetProject("libplctag.NativeImport.Tests.NetCore.DirectDependency");
var netCoreTransitive = Solution.GetProject("libplctag.NativeImport.Tests.NetCore.TransitiveDependency");
var netFrameworkDirect = Solution.GetProject("libplctag.NativeImport.Tests.NetFramework.DirectDependency");
var netFrameworkTransitive = Solution.GetProject("libplctag.NativeImport.Tests.NetFramework.TransitiveDependency");

var nugetConfigPath = Path.GetTempFileName() + ".nuget.config";
File.WriteAllText(nugetConfigPath, nuget_config_contents);

NetCoreInstallRestoreBuildTest(netCoreDirect, isTransitive: false, nugetConfigPath);
NetCoreInstallRestoreBuildTest(netCoreTransitive, isTransitive: true, nugetConfigPath);
// Future - figure out how to test for packges.config projects
// The issue I ran into is that there is no way to add packages using the CLI
// dotnet CLI does not work for packages.config projects - https://github.com/dotnet/sdk/issues/7922
// Nuget does not modify project/solution files - https://learn.microsoft.com/en-us/nuget/consume-packages/install-use-packages-nuget-cli#install-a-package
// And this is known to not be supported - https://github.com/NuGet/Home/issues/1512

File.Delete(nugetConfigPath);

});

void NetCoreInstallRestoreBuildTest(Project proj, bool isTransitive, string nugetConfigPath)
{
DotNetRestore(s => s
.SetProjectFile(proj)
.SetPackageDirectory(PackageRestoreDirectory)
.SetConfigFile(nugetConfigPath)
);

var libplctagVersion = libplctag.GetProperty("version");
var libplctagNativeImportVersion = libplctag_NativeImport.GetProperty("version");

DotNet($"add {proj.Path} package {libplctag_NativeImport.Name} -s {ArtifactsDirectory} --version {libplctagNativeImportVersion} --package-directory {PackageRestoreDirectory}");

if (isTransitive)
DotNet($"add {proj.Path} package {libplctag.Name} -s {ArtifactsDirectory} --version {libplctagVersion} --package-directory {PackageRestoreDirectory}");

DotNetBuild(s => s
.SetProjectFile(proj)
.SetConfiguration(Configuration)
.SetNoRestore(true)
);

DotNetTest(s => s
.SetProjectFile(proj)
.SetNoRestore(true)
);
}

Target PackLibplctag => _ => _
.DependsOn(Compile)
.Executes(() =>
{
DotNetPack(s => s
Expand Down Expand Up @@ -186,7 +100,8 @@ void NetCoreInstallRestoreBuildTest(Project proj, bool isTransitive, string nuge

Target ReleaseAll => _ => _
.DependsOn(TestLibplctag)
.DependsOn(TestLibplctagNativeImport)
.DependsOn(PackLibplctagNativeImport)
.DependsOn(PackLibplctag)
.Requires(() => NugetApiUrl)
.Requires(() => NugetApiKey)
.Requires(() => Configuration.Equals(Configuration.Release))
Expand Down
22 changes: 0 additions & 22 deletions src/libplctag.NativeImport.Tests.NetCore.DirectDependency/Test.cs

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

Loading
Loading