mirror of
https://github.com/MindWorkAI/AI-Studio.git
synced 2025-05-03 09:39:47 +00:00
Refactor RID handling to use the current RID only
This commit is contained in:
parent
aac8b25ae2
commit
cd4fafed1f
@ -17,5 +17,10 @@ public sealed class CheckRidsCommand
|
|||||||
{
|
{
|
||||||
Console.WriteLine($"- {rid}");
|
Console.WriteLine($"- {rid}");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Console.WriteLine();
|
||||||
|
Console.WriteLine("The RID for the current OS and CPU is:");
|
||||||
|
var currentRid = Environment.GetCurrentRid();
|
||||||
|
Console.WriteLine($"- {currentRid}");
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -105,105 +105,99 @@ public sealed partial class UpdateMetadataCommands
|
|||||||
// Build the .NET project:
|
// Build the .NET project:
|
||||||
//
|
//
|
||||||
var pathApp = Environment.GetAIStudioDirectory();
|
var pathApp = Environment.GetAIStudioDirectory();
|
||||||
var rids = Environment.GetRidsForCurrentOS();
|
var rid = Environment.GetCurrentRid();
|
||||||
foreach (var rid in rids)
|
|
||||||
|
Console.WriteLine("==============================");
|
||||||
|
await this.UpdateArchitecture(rid);
|
||||||
|
|
||||||
|
Console.Write($"- Start .NET build for '{rid.AsMicrosoftRid()}' ...");
|
||||||
|
await this.ReadCommandOutput(pathApp, "dotnet", $"clean --configuration release --runtime {rid.AsMicrosoftRid()}");
|
||||||
|
var dotnetBuildOutput = await this.ReadCommandOutput(pathApp, "dotnet", $"publish --configuration release --runtime {rid.AsMicrosoftRid()} --disable-build-servers --force");
|
||||||
|
var dotnetBuildOutputLines = dotnetBuildOutput.Split([global::System.Environment.NewLine], StringSplitOptions.RemoveEmptyEntries);
|
||||||
|
var foundIssue = false;
|
||||||
|
foreach (var buildOutputLine in dotnetBuildOutputLines)
|
||||||
{
|
{
|
||||||
Console.WriteLine("==============================");
|
if(buildOutputLine.Contains(" error ") || buildOutputLine.Contains("#warning"))
|
||||||
await this.UpdateArchitecture(rid);
|
|
||||||
|
|
||||||
Console.Write($"- Start .NET build for '{rid.AsMicrosoftRid()}' ...");
|
|
||||||
await this.ReadCommandOutput(pathApp, "dotnet", $"clean --configuration release --runtime {rid.AsMicrosoftRid()}");
|
|
||||||
var dotnetBuildOutput = await this.ReadCommandOutput(pathApp, "dotnet", $"publish --configuration release --runtime {rid.AsMicrosoftRid()} --disable-build-servers --force");
|
|
||||||
var dotnetBuildOutputLines = dotnetBuildOutput.Split([global::System.Environment.NewLine], StringSplitOptions.RemoveEmptyEntries);
|
|
||||||
var foundIssue = false;
|
|
||||||
foreach (var buildOutputLine in dotnetBuildOutputLines)
|
|
||||||
{
|
{
|
||||||
if(buildOutputLine.Contains(" error ") || buildOutputLine.Contains("#warning"))
|
if(!foundIssue)
|
||||||
{
|
{
|
||||||
if(!foundIssue)
|
foundIssue = true;
|
||||||
{
|
Console.WriteLine();
|
||||||
foundIssue = true;
|
Console.WriteLine("- Build has issues:");
|
||||||
Console.WriteLine();
|
|
||||||
Console.WriteLine("- Build has issues:");
|
|
||||||
}
|
|
||||||
|
|
||||||
Console.Write(" - ");
|
|
||||||
Console.WriteLine(buildOutputLine);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Console.Write(" - ");
|
||||||
|
Console.WriteLine(buildOutputLine);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if(foundIssue)
|
if(foundIssue)
|
||||||
Console.WriteLine();
|
|
||||||
else
|
|
||||||
{
|
|
||||||
Console.WriteLine(" completed successfully.");
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
// Prepare the .NET artifact to be used by Tauri as sidecar:
|
|
||||||
//
|
|
||||||
var os = Environment.GetOS();
|
|
||||||
var tauriSidecarArtifactName = rid switch
|
|
||||||
{
|
|
||||||
RID.WIN_X64 => "mindworkAIStudioServer-x86_64-pc-windows-msvc.exe",
|
|
||||||
RID.WIN_ARM64 => "mindworkAIStudioServer-aarch64-pc-windows-msvc.exe",
|
|
||||||
|
|
||||||
RID.LINUX_X64 => "mindworkAIStudioServer-x86_64-unknown-linux-gnu",
|
|
||||||
RID.LINUX_ARM64 => "mindworkAIStudioServer-aarch64-unknown-linux-gnu",
|
|
||||||
|
|
||||||
RID.OSX_ARM64 => "mindworkAIStudioServer-aarch64-apple-darwin",
|
|
||||||
RID.OSX_X64 => "mindworkAIStudioServer-x86_64-apple-darwin",
|
|
||||||
|
|
||||||
_ => string.Empty,
|
|
||||||
};
|
|
||||||
|
|
||||||
if (string.IsNullOrWhiteSpace(tauriSidecarArtifactName))
|
|
||||||
{
|
|
||||||
Console.WriteLine($"- Error: Unsupported rid '{rid.AsMicrosoftRid()}'.");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
var dotnetArtifactPath = Path.Combine(pathApp, "bin", "dist");
|
|
||||||
if(!Directory.Exists(dotnetArtifactPath))
|
|
||||||
Directory.CreateDirectory(dotnetArtifactPath);
|
|
||||||
|
|
||||||
var dotnetArtifactFilename = os switch
|
|
||||||
{
|
|
||||||
"windows" => "mindworkAIStudio.exe",
|
|
||||||
_ => "mindworkAIStudio",
|
|
||||||
};
|
|
||||||
|
|
||||||
var dotnetPublishedPath = Path.Combine(pathApp, "bin", "release", Environment.DOTNET_VERSION, rid.AsMicrosoftRid(), "publish", dotnetArtifactFilename);
|
|
||||||
var finalDestination = Path.Combine(dotnetArtifactPath, tauriSidecarArtifactName);
|
|
||||||
|
|
||||||
if(File.Exists(dotnetPublishedPath))
|
|
||||||
Console.WriteLine("- Published .NET artifact found.");
|
|
||||||
else
|
|
||||||
{
|
|
||||||
Console.WriteLine($"- Error: Published .NET artifact not found: '{dotnetPublishedPath}'.");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
Console.Write($"- Move the .NET artifact to the Tauri sidecar destination ...");
|
|
||||||
try
|
|
||||||
{
|
|
||||||
File.Move(dotnetPublishedPath, finalDestination, true);
|
|
||||||
Console.WriteLine(" done.");
|
|
||||||
}
|
|
||||||
catch (Exception e)
|
|
||||||
{
|
|
||||||
Console.WriteLine(" failed.");
|
|
||||||
Console.WriteLine($" - Error: {e.Message}");
|
|
||||||
}
|
|
||||||
|
|
||||||
Console.WriteLine();
|
Console.WriteLine();
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Console.WriteLine(" completed successfully.");
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// Prepare the .NET artifact to be used by Tauri as sidecar:
|
||||||
|
//
|
||||||
|
var os = Environment.GetOS();
|
||||||
|
var tauriSidecarArtifactName = rid switch
|
||||||
|
{
|
||||||
|
RID.WIN_X64 => "mindworkAIStudioServer-x86_64-pc-windows-msvc.exe",
|
||||||
|
RID.WIN_ARM64 => "mindworkAIStudioServer-aarch64-pc-windows-msvc.exe",
|
||||||
|
|
||||||
|
RID.LINUX_X64 => "mindworkAIStudioServer-x86_64-unknown-linux-gnu",
|
||||||
|
RID.LINUX_ARM64 => "mindworkAIStudioServer-aarch64-unknown-linux-gnu",
|
||||||
|
|
||||||
|
RID.OSX_ARM64 => "mindworkAIStudioServer-aarch64-apple-darwin",
|
||||||
|
RID.OSX_X64 => "mindworkAIStudioServer-x86_64-apple-darwin",
|
||||||
|
|
||||||
|
_ => string.Empty,
|
||||||
|
};
|
||||||
|
|
||||||
|
if (string.IsNullOrWhiteSpace(tauriSidecarArtifactName))
|
||||||
|
{
|
||||||
|
Console.WriteLine($"- Error: Unsupported rid '{rid.AsMicrosoftRid()}'.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
var dotnetArtifactPath = Path.Combine(pathApp, "bin", "dist");
|
||||||
|
if(!Directory.Exists(dotnetArtifactPath))
|
||||||
|
Directory.CreateDirectory(dotnetArtifactPath);
|
||||||
|
|
||||||
|
var dotnetArtifactFilename = os switch
|
||||||
|
{
|
||||||
|
"windows" => "mindworkAIStudio.exe",
|
||||||
|
_ => "mindworkAIStudio",
|
||||||
|
};
|
||||||
|
|
||||||
|
var dotnetPublishedPath = Path.Combine(pathApp, "bin", "release", Environment.DOTNET_VERSION, rid.AsMicrosoftRid(), "publish", dotnetArtifactFilename);
|
||||||
|
var finalDestination = Path.Combine(dotnetArtifactPath, tauriSidecarArtifactName);
|
||||||
|
|
||||||
|
if(File.Exists(dotnetPublishedPath))
|
||||||
|
Console.WriteLine("- Published .NET artifact found.");
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Console.WriteLine($"- Error: Published .NET artifact not found: '{dotnetPublishedPath}'.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
Console.Write($"- Move the .NET artifact to the Tauri sidecar destination ...");
|
||||||
|
try
|
||||||
|
{
|
||||||
|
File.Move(dotnetPublishedPath, finalDestination, true);
|
||||||
|
Console.WriteLine(" done.");
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
Console.WriteLine(" failed.");
|
||||||
|
Console.WriteLine($" - Error: {e.Message}");
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Build the Rust project / runtime:
|
// Build the Rust project / runtime:
|
||||||
//
|
//
|
||||||
|
|
||||||
Console.WriteLine("==============================");
|
|
||||||
Console.WriteLine("- Start building the Rust runtime ...");
|
Console.WriteLine("- Start building the Rust runtime ...");
|
||||||
|
|
||||||
var pathRuntime = Environment.GetRustRuntimeDirectory();
|
var pathRuntime = Environment.GetRustRuntimeDirectory();
|
||||||
|
@ -17,7 +17,7 @@ public sealed class UpdateWebAssetsCommand
|
|||||||
Console.WriteLine("=========================");
|
Console.WriteLine("=========================");
|
||||||
Console.Write("- Updating web assets ...");
|
Console.Write("- Updating web assets ...");
|
||||||
|
|
||||||
var rid = Environment.GetRidsForCurrentOS().First();
|
var rid = Environment.GetCurrentRid();
|
||||||
var cwd = Environment.GetAIStudioDirectory();
|
var cwd = Environment.GetAIStudioDirectory();
|
||||||
var contentPath = Path.Join(cwd, "bin", "release", Environment.DOTNET_VERSION, rid.AsMicrosoftRid(), "publish", "wwwroot", "_content");
|
var contentPath = Path.Join(cwd, "bin", "release", Environment.DOTNET_VERSION, rid.AsMicrosoftRid(), "publish", "wwwroot", "_content");
|
||||||
var isMudBlazorDirectoryPresent = Directory.Exists(Path.Join(contentPath, "MudBlazor"));
|
var isMudBlazorDirectoryPresent = Directory.Exists(Path.Join(contentPath, "MudBlazor"));
|
||||||
|
@ -76,4 +76,38 @@ public static class Environment
|
|||||||
Console.WriteLine($"Error: Unsupported OS '{RuntimeInformation.OSDescription}'");
|
Console.WriteLine($"Error: Unsupported OS '{RuntimeInformation.OSDescription}'");
|
||||||
return [];
|
return [];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static RID GetCurrentRid()
|
||||||
|
{
|
||||||
|
var arch = RuntimeInformation.ProcessArchitecture;
|
||||||
|
if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
|
||||||
|
return arch switch
|
||||||
|
{
|
||||||
|
Architecture.X64 => RID.WIN_X64,
|
||||||
|
Architecture.Arm64 => RID.WIN_ARM64,
|
||||||
|
|
||||||
|
_ => RID.NONE,
|
||||||
|
};
|
||||||
|
|
||||||
|
if (RuntimeInformation.IsOSPlatform(OSPlatform.OSX))
|
||||||
|
return arch switch
|
||||||
|
{
|
||||||
|
Architecture.X64 => RID.OSX_X64,
|
||||||
|
Architecture.Arm64 => RID.OSX_ARM64,
|
||||||
|
|
||||||
|
_ => RID.NONE,
|
||||||
|
};
|
||||||
|
|
||||||
|
if (RuntimeInformation.IsOSPlatform(OSPlatform.Linux))
|
||||||
|
return arch switch
|
||||||
|
{
|
||||||
|
Architecture.X64 => RID.LINUX_X64,
|
||||||
|
Architecture.Arm64 => RID.LINUX_ARM64,
|
||||||
|
|
||||||
|
_ => RID.NONE,
|
||||||
|
};
|
||||||
|
|
||||||
|
Console.WriteLine($"Error: Unsupported OS '{RuntimeInformation.OSDescription}'");
|
||||||
|
return RID.NONE;
|
||||||
|
}
|
||||||
}
|
}
|
Loading…
Reference in New Issue
Block a user