From 54af797ef9ae9b2d3ffa4048792fcdd345b1f1a3 Mon Sep 17 00:00:00 2001 From: Sean Fausett Date: Sun, 8 Mar 2020 07:52:08 +1300 Subject: [PATCH 1/2] Set application exit code --- src/GitVersionExe.Tests/ExecCmdLineArgumentTest.cs | 2 +- src/GitVersionExe/GitVersionApp.cs | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/GitVersionExe.Tests/ExecCmdLineArgumentTest.cs b/src/GitVersionExe.Tests/ExecCmdLineArgumentTest.cs index ceeccb18ed..79e6a87760 100644 --- a/src/GitVersionExe.Tests/ExecCmdLineArgumentTest.cs +++ b/src/GitVersionExe.Tests/ExecCmdLineArgumentTest.cs @@ -98,7 +98,7 @@ public void WorkingDirectoryDoesNotExistCrashesWithInformativeMessage() args, PathHelper.GetCurrentDirectory()); - exitCode.ShouldBe(0); + exitCode.ShouldNotBe(0); var outputString = output.ToString(); outputString.ShouldContain($"The working directory '{workingDirectory}' does not exist.", () => outputString); } diff --git a/src/GitVersionExe/GitVersionApp.cs b/src/GitVersionExe/GitVersionApp.cs index 241f99d74b..ec2fcdb878 100644 --- a/src/GitVersionExe/GitVersionApp.cs +++ b/src/GitVersionExe/GitVersionApp.cs @@ -27,11 +27,12 @@ public Task StartAsync(CancellationToken cancellationToken) { var arguments = options.Value; log.Verbosity = arguments.Verbosity; - gitVersionExecutor.Execute(arguments); + System.Environment.ExitCode = gitVersionExecutor.Execute(arguments); } catch (Exception exception) { Console.Error.WriteLine(exception.Message); + System.Environment.ExitCode = 1; } applicationLifetime.StopApplication(); From a2e85324507e7e9ee7cc156bab82e61abc98b647 Mon Sep 17 00:00:00 2001 From: Sean Fausett Date: Mon, 9 Mar 2020 07:06:04 +1300 Subject: [PATCH 2/2] Fix integration test to check exit code --- src/GitVersionExe.Tests/ExecCmdLineArgumentTest.cs | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/GitVersionExe.Tests/ExecCmdLineArgumentTest.cs b/src/GitVersionExe.Tests/ExecCmdLineArgumentTest.cs index 79e6a87760..43f6dca932 100644 --- a/src/GitVersionExe.Tests/ExecCmdLineArgumentTest.cs +++ b/src/GitVersionExe.Tests/ExecCmdLineArgumentTest.cs @@ -72,14 +72,16 @@ public void CheckBuildServerVerbosityConsole(string verbosityArg, string expecte } [Test] - public void WorkingDirectoryWithoutGitFolderCrashesWithInformativeMessage() + public void WorkingDirectoryWithoutGitFolderFailsWithInformativeMessage() { - var results = GitVersionHelper.ExecuteIn(Environment.SystemDirectory, null, false); - results.Output.ShouldContain("Can't find the .git directory in"); + var result = GitVersionHelper.ExecuteIn(Environment.SystemDirectory, null, false); + + result.ExitCode.ShouldNotBe(0); + result.Output.ShouldContain("Can't find the .git directory in"); } [Test] - public void WorkingDirectoryDoesNotExistCrashesWithInformativeMessage() + public void WorkingDirectoryDoesNotExistFailsWithInformativeMessage() { var workingDirectory = Path.Combine(PathHelper.GetCurrentDirectory(), Guid.NewGuid().ToString("N")); var executable = PathHelper.GetExecutable();