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
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
using System.Diagnostics.CodeAnalysis;
using Cake.Core.IO;

namespace CreativeCoders.CakeBuild;

public static class DirectoryPathExtensions
{
[SuppressMessage("ReSharper", "LoopCanBeConvertedToQuery")]
public static DirectoryPath Combine(this DirectoryPath path, params string[] segments)
{
foreach (var segment in segments)
{
path = path.Combine(segment);
}

return path;
}
}
27 changes: 27 additions & 0 deletions source/CakeBuild/CreativeCoders.CakeBuild/DotNetRuntime.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
using System.Diagnostics.CodeAnalysis;
using JetBrains.Annotations;

namespace CreativeCoders.CakeBuild;

[ExcludeFromCodeCoverage]
[PublicAPI]
public static class DotNetRuntime
{
public const string WinX64 = "win-x64";

public const string WinX86 = "win-x86";

public const string WinArm64 = "win-arm64";

public const string WinArm = "win-arm";

public const string LinuxX64 = "linux-x64";

public const string LinuxMuslX64 = "linux-x64";

public const string LinuxArm64 = "linux-arm64";

public const string LinuxArm = "linux-arm";

public const string MacOsX64 = "osx-x64";
}
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ protected override Task RunAsyncCore(T context, INuGetPushTaskSettings taskSetti

var packSettings = context.GetRequiredSettings<IPackTaskSettings>();

var filePath = packSettings.OutputDirectory.GetFilePath("*.nupkg");
var filePath = packSettings.PackOutputDirectory.GetFilePath("*.nupkg");

context.DotNetNuGetPush(filePath, CreateNuGetPushSettings(taskSettings));

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ private DotNetPackSettings CreateDotNetPackSettings(T context, IPackTaskSettings
{
var dotNetPackSettings = new DotNetPackSettings
{
OutputDirectory = packSettings.OutputDirectory,
OutputDirectory = packSettings.PackOutputDirectory,
Configuration = context.BuildConfiguration,
NoBuild = context.HasExecutedTask(typeof(BuildTask<T>)),
IncludeSymbols = true,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ protected override Task RunAsyncCore(TBuildContext context, IPublishTaskSettings
foreach (var publishingItem in taskSettings.PublishingItems)
{
context.DotNetPublish(publishingItem.ProjectPath.FullPath,
CreateDotNetPublishSettings(publishingItem, context));
CreateDotNetPublishSettings(taskSettings, publishingItem, context));
}
}
else
Expand All @@ -28,7 +28,7 @@ protected override Task RunAsyncCore(TBuildContext context, IPublishTaskSettings
return Task.CompletedTask;
}

private DotNetPublishSettings CreateDotNetPublishSettings(IPublishTaskSettings publishSettings,
private static DotNetPublishSettings CreateDotNetPublishSettings(IPublishTaskSettings publishSettings,
TBuildContext context)
{
var dotNetPublishSettings = new DotNetPublishSettings
Expand All @@ -41,15 +41,16 @@ private DotNetPublishSettings CreateDotNetPublishSettings(IPublishTaskSettings p
return dotNetPublishSettings;
}

protected virtual DotNetPublishSettings CreateDotNetPublishSettings(PublishingItem publishingItem,
TBuildContext context)
protected virtual DotNetPublishSettings CreateDotNetPublishSettings(IPublishTaskSettings publishSettings,
PublishingItem publishingItem, TBuildContext context)
{
var dotNetPublishSettings = new DotNetPublishSettings
{
Runtime = publishingItem.Runtime,
OutputDirectory = publishingItem.OutputDir,
OutputDirectory = publishingItem.OutputDir.IsRelative
? publishSettings.PublishOutputDir.Combine(publishingItem.OutputDir)
: publishingItem.OutputDir,
SelfContained = publishingItem.SelfContained,
NoBuild = context.HasExecutedTask(typeof(BuildTask<TBuildContext>)),
Configuration = context.BuildConfiguration
};

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ namespace CreativeCoders.CakeBuild.Tasks.Templates.Settings;
[CakeTaskSettings]
public interface IPackTaskSettings : IBuildContextAccessor
{
DirectoryPath OutputDirectory => Context.ArtifactsDir.Combine("nuget");
DirectoryPath PackOutputDirectory => Context.ArtifactsDir.Combine("nuget");

string Copyright => string.Empty;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ namespace CreativeCoders.CakeBuild.Tasks.Templates.Settings;

public interface IPublishTaskSettings : IBuildContextAccessor
{
DirectoryPath PublishOutputDir => Context.ArtifactsDir.Combine("dist");
DirectoryPath PublishOutputDir => Context.ArtifactsDir.Combine("published");

IEnumerable<PublishingItem> PublishingItems => [];
}
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ private class TestNuGetPushBuildContext(Cake.Core.ICakeContext context)
{
public bool SkipPush { get; set; }

public DirectoryPath OutputDirectory => new("/repo/dist");
public DirectoryPath PackOutputDirectory => new("/repo/dist");
}

[Fact]
Expand Down