diff --git a/main.go b/main.go index d5ddb23..a27f1b1 100644 --- a/main.go +++ b/main.go @@ -94,7 +94,7 @@ func loadConfiguration() (*runnerconfiguration.RunnerSettings, error) { // fmt.Printf("The runner needs to be configured first: %v\n", err.Error()) // return 1 settings.PoolID = 1 - } else if err != nil { + } else { return nil, err } } @@ -292,7 +292,7 @@ func main() { _ = os.Remove("auth.json") // Ignore error for cleanup _ = os.Remove("cred.pkcs1") // Ignore error for cleanup if saveActionsRunnerConfig && len(settings.Instances) == 1 { - _ = runnerCompat.FromRunnerInstance(settings.Instances[0], runnerCompat.DefaultConfigFileAccess{}) + err = runnerCompat.FromRunnerInstance(settings.Instances[0], runnerCompat.DefaultConfigFileAccess{}) } else { if writeErr := common.WriteJSON("settings.json", settings); writeErr != nil { fmt.Printf("Failed to write settings.json: %v", writeErr) diff --git a/protocol/logger/job_logger.go b/protocol/logger/job_logger.go index 0ce6051..90049ee 100644 --- a/protocol/logger/job_logger.go +++ b/protocol/logger/job_logger.go @@ -193,6 +193,22 @@ func (logger *WebsocketLiveloggerWithFallback) Close() error { return logger.replace(&errorLogger{}) } +func (logger *WebsocketLiveloggerWithFallback) sendLogFallback( + err error, reason string, wrapper *protocol.TimelineRecordFeedLinesWrapper, +) error { + if !logger.ForceWebsock { + if logger.Connection.Trace { + fmt.Printf("Failed to %s to websocket %s, fallback to vsslogger\n", reason, err.Error()) + } + currentLogger := logger.initializeVssLogger() + if currentLogger == nil { + return fmt.Errorf("failed to initialize VSS logger after websocket %s failure: %w", reason, err) + } + return currentLogger.SendLog(wrapper) + } + return err +} + func (logger *WebsocketLiveloggerWithFallback) SendLog(wrapper *protocol.TimelineRecordFeedLinesWrapper) error { currentLogger := getPointer(logger.currentLogger.Load()) if currentLogger == nil { @@ -208,31 +224,11 @@ func (logger *WebsocketLiveloggerWithFallback) SendLog(wrapper *protocol.Timelin } if wslogger, ok := currentLogger.(*WebsocketLivelogger); ok { if err = wslogger.Connect(); err != nil { - if !logger.ForceWebsock { - if logger.Connection.Trace { - fmt.Printf("Failed to reconnect to websocket %s, fallback to vsslogger\n", err.Error()) - } - currentLogger = logger.initializeVssLogger() - if currentLogger == nil { - return fmt.Errorf("failed to initialize VSS logger after websocket reconnect failure: %w", err) - } - return currentLogger.SendLog(wrapper) - } - return err + return logger.sendLogFallback(err, "reconnect", wrapper) } err = currentLogger.SendLog(wrapper) if err != nil { - if !logger.ForceWebsock { - if logger.Connection.Trace { - fmt.Printf("Failed to send webconsole log %s, fallback to vsslogger\n", err.Error()) - } - currentLogger = logger.initializeVssLogger() - if currentLogger == nil { - return fmt.Errorf("failed to initialize VSS logger after websocket send failure: %w", err) - } - return currentLogger.SendLog(wrapper) - } - return err + return logger.sendLogFallback(err, "send", wrapper) } return nil }