feat: return 1 on force quit
Some checks failed
continuous-integration/drone/push Build is failing

This commit is contained in:
张泊明518370910136 2024-07-19 07:12:18 -04:00
parent e4091f9ba4
commit 27a2aac537
GPG Key ID: D47306D7062CDA9D
2 changed files with 15 additions and 5 deletions

View File

@ -71,17 +71,26 @@ func outputResult(conf Conf, results []stage.StageResult) error {
} }
func main() { func main() {
retCode := 0
defer func() {
os.Exit(retCode)
}()
conf, err := commitMsgToConf() conf, err := commitMsgToConf()
if err != nil { if err != nil {
slog.Error("no conf found", "error", err) slog.Error("no conf found", "error", err)
os.Exit(1) retCode = 1
return
} }
setupSlog(conf) setupSlog(conf)
executors.InitWithConf(conf.SandboxExecServer, conf.SandboxToken) executors.InitWithConf(conf.SandboxExecServer, conf.SandboxToken)
stages := generateStages(conf) stages := generateStages(conf)
defer stage.Cleanup() defer stage.Cleanup()
results := stage.Run(stages) results, stageErr := stage.Run(stages)
if err := outputResult(conf, results); err != nil { if err := outputResult(conf, results); err != nil {
slog.Error("output result", "error", err) slog.Error("output result", "error", err)
} }
if stageErr != nil {
retCode = 1
return
}
} }

View File

@ -1,11 +1,11 @@
package stage package stage
import ( import (
"errors"
"log/slog" "log/slog"
) )
func Run(stages []Stage) []StageResult { func Run(stages []Stage) (stageResults []StageResult, stageErr error) {
stageResults := []StageResult{}
for _, stage := range stages { for _, stage := range stages {
slog.Debug("stage start", "name", stage.Name) slog.Debug("stage start", "name", stage.Name)
slog.Debug("executor run start", "cmds", stage.ExecutorCmds) slog.Debug("executor run start", "cmds", stage.ExecutorCmds)
@ -38,10 +38,11 @@ func Run(stages []Stage) []StageResult {
ForceQuit: forceQuit, ForceQuit: forceQuit,
}) })
if forceQuit { if forceQuit {
stageErr = errors.New("parser force quit")
break break
} }
} }
return stageResults return
} }
func Cleanup() { func Cleanup() {