fix #529: exit with code 7 when error was logged

This commit is contained in:
Denis Isaev 2019-06-10 10:45:36 +03:00 committed by Isaev Denis
parent 7274db714c
commit 4ba2155996
2 changed files with 14 additions and 3 deletions

View File

@ -415,13 +415,23 @@ func (e *Executor) setupExitCode(ctx context.Context) {
if ctx.Err() != nil { if ctx.Err() != nil {
e.exitCode = exitcodes.Timeout e.exitCode = exitcodes.Timeout
e.log.Errorf("Deadline exceeded: try increase it by passing --deadline option") e.log.Errorf("Deadline exceeded: try increase it by passing --deadline option")
return
} }
if e.exitCode == exitcodes.Success && if e.exitCode != exitcodes.Success {
(os.Getenv("GL_TEST_RUN") == "1" || os.Getenv("FAIL_ON_WARNINGS") == "1") && return
len(e.reportData.Warnings) != 0 { }
needFailOnWarnings := (os.Getenv("GL_TEST_RUN") == "1" || os.Getenv("FAIL_ON_WARNINGS") == "1")
if needFailOnWarnings && len(e.reportData.Warnings) != 0 {
e.exitCode = exitcodes.WarningInTest e.exitCode = exitcodes.WarningInTest
return
}
if e.reportData.Error != "" {
// it's a case e.g. when typecheck linter couldn't parse and error and just logged it
e.exitCode = exitcodes.ErrorWasLogged
return
} }
} }

View File

@ -8,6 +8,7 @@ const (
Timeout = 4 Timeout = 4
NoGoFiles = 5 NoGoFiles = 5
NoConfigFileDetected = 6 NoConfigFileDetected = 6
ErrorWasLogged = 7
) )
type ExitError struct { type ExitError struct {