From 030e561f156b3904ab812041174af4727c98931e Mon Sep 17 00:00:00 2001 From: visose Date: Fri, 3 Dec 2021 18:47:14 +0000 Subject: [PATCH] Add test to build --- build/Robots.Build/Commands.cs | 17 +++++++++++------ build/Robots.Build/Program.cs | 11 +++++++++-- .../Robots.Build/Properties/launchSettings.json | 2 +- build/Robots.Build/Util.cs | 9 ++------- 4 files changed, 23 insertions(+), 16 deletions(-) diff --git a/build/Robots.Build/Commands.cs b/build/Robots.Build/Commands.cs index b11311e..503d975 100644 --- a/build/Robots.Build/Commands.cs +++ b/build/Robots.Build/Commands.cs @@ -4,12 +4,17 @@ namespace Robots.Build; class Commands { - public static void Build() + public static int Test() { - Run("dotnet", "build src/Robots.Grasshopper/Robots.Grasshopper.csproj -c Release"); + return Run("dotnet", "test tests/Robots.Tests/Robots.Tests.csproj"); } - public static void Package() + public static int Build() + { + return Run("dotnet", "build src/Robots.Grasshopper/Robots.Grasshopper.csproj -c Release"); + } + + public static int Package() { // Pacakge folder if (Directory.Exists(PackageFolder)) @@ -36,17 +41,17 @@ public static void Package() // Build package string yak = GetYakPath(); - Run(yak, "build", PackageFolder); + return Run(yak, "build", PackageFolder); } - public static void Publish() + public static int Publish() { string packagePath = Directory.EnumerateFiles(PackageFolder) .Single(f => Path.GetExtension(f) == ".yak"); string packageFile = Path.GetFileName(packagePath); string yak = GetYakPath(); - Run(yak, $"push {packageFile}", PackageFolder); + return Run(yak, $"push {packageFile}", PackageFolder); } static string GetYakPath() diff --git a/build/Robots.Build/Program.cs b/build/Robots.Build/Program.cs index b982d09..e869045 100644 --- a/build/Robots.Build/Program.cs +++ b/build/Robots.Build/Program.cs @@ -1,7 +1,8 @@ using Robots.Build; -var commandList = new Dictionary +var commandList = new Dictionary> { + { "test", Commands.Test }, { "build", Commands.Build }, { "package", Commands.Package }, { "publish", Commands.Publish }, @@ -22,7 +23,13 @@ } Console.WriteLine($"Starting {arg}..."); - action(); + int result = action(); + + if (result != 0) + { + Console.WriteLine("Premature exit."); + return result; + } } Console.WriteLine("Finished with no errors."); diff --git a/build/Robots.Build/Properties/launchSettings.json b/build/Robots.Build/Properties/launchSettings.json index 8bafb40..7b3da3a 100644 --- a/build/Robots.Build/Properties/launchSettings.json +++ b/build/Robots.Build/Properties/launchSettings.json @@ -2,7 +2,7 @@ "profiles": { "Robots.Build": { "commandName": "Project", - "commandLineArgs": "build package publish", + "commandLineArgs": "test build package", "workingDirectory": "../../" } } diff --git a/build/Robots.Build/Util.cs b/build/Robots.Build/Util.cs index da59ddf..ddabf80 100644 --- a/build/Robots.Build/Util.cs +++ b/build/Robots.Build/Util.cs @@ -8,7 +8,7 @@ static class Util public static string BuildFolder => Path.Combine(ArtifactsFolder, "bin", "Robots.Grasshopper", "net48"); public static string PackageFolder => Path.Combine(ArtifactsFolder, "package"); - public static void Run(string file, string args, string? setCurrentDir = null) + public static int Run(string file, string args, string? setCurrentDir = null) { var currentDir = Directory.GetCurrentDirectory(); @@ -35,11 +35,6 @@ public static void Run(string file, string args, string? setCurrentDir = null) process.WaitForExit(); Directory.SetCurrentDirectory(currentDir); - - if (process.ExitCode != 0) - { - Console.WriteLine("Premature exit."); - Environment.Exit(process.ExitCode); - } + return process.ExitCode; } } \ No newline at end of file