mirror of
https://gitea.com/gitea/act_runner.git
synced 2026-03-20 03:46:09 +08:00
Move logging to another file
This commit is contained in:
@@ -12,6 +12,7 @@ import (
|
|||||||
"strconv"
|
"strconv"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
|
"gitea.com/gitea/act_runner/internal/app/run"
|
||||||
"github.com/actions-oss/act-cli/pkg/artifactcache"
|
"github.com/actions-oss/act-cli/pkg/artifactcache"
|
||||||
"github.com/actions-oss/act-cli/pkg/artifacts"
|
"github.com/actions-oss/act-cli/pkg/artifacts"
|
||||||
"github.com/actions-oss/act-cli/pkg/common"
|
"github.com/actions-oss/act-cli/pkg/common"
|
||||||
@@ -25,15 +26,6 @@ import (
|
|||||||
"golang.org/x/term"
|
"golang.org/x/term"
|
||||||
)
|
)
|
||||||
|
|
||||||
type JobLoggerFactoryWithInfoLevel struct{}
|
|
||||||
|
|
||||||
// WithJobLogger implements [runner.JobLoggerFactory].
|
|
||||||
func (j *JobLoggerFactoryWithInfoLevel) WithJobLogger() *log.Logger {
|
|
||||||
jobLogger := log.New()
|
|
||||||
jobLogger.SetLevel(log.InfoLevel)
|
|
||||||
return jobLogger
|
|
||||||
}
|
|
||||||
|
|
||||||
type executeArgs struct {
|
type executeArgs struct {
|
||||||
runList bool
|
runList bool
|
||||||
job string
|
job string
|
||||||
@@ -458,7 +450,7 @@ func runExec(ctx context.Context, execArgs *executeArgs) func(cmd *cobra.Command
|
|||||||
}
|
}
|
||||||
|
|
||||||
// TODO GITEA
|
// TODO GITEA
|
||||||
ctx = runner.WithJobLoggerFactory(ctx, &JobLoggerFactoryWithInfoLevel{})
|
ctx = runner.WithJobLoggerFactory(ctx, &run.JobLoggerFactoryWithInfoLevel{})
|
||||||
|
|
||||||
r, err := runner.New(config)
|
r, err := runner.New(config)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|||||||
@@ -5,20 +5,34 @@ package run
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"io"
|
"io"
|
||||||
|
"os"
|
||||||
|
|
||||||
|
"gitea.com/gitea/act_runner/internal/pkg/report"
|
||||||
log "github.com/sirupsen/logrus"
|
log "github.com/sirupsen/logrus"
|
||||||
)
|
)
|
||||||
|
|
||||||
// NullLogger is used to create a new JobLogger to discard logs. This
|
type JobLoggerFactoryWithInfoLevel struct{}
|
||||||
// will prevent these logs from being logged to the stdout, but
|
|
||||||
// forward them to the Reporter via its hook.
|
|
||||||
type NullLogger struct{}
|
|
||||||
|
|
||||||
// WithJobLogger creates a new logrus.Logger that will discard all logs.
|
// WithJobLogger implements [runner.JobLoggerFactory].
|
||||||
func (n NullLogger) WithJobLogger() *log.Logger {
|
func (j *JobLoggerFactoryWithInfoLevel) WithJobLogger() *log.Logger {
|
||||||
logger := log.New()
|
jobLogger := log.New()
|
||||||
logger.SetOutput(io.Discard)
|
jobLogger.SetLevel(log.InfoLevel)
|
||||||
logger.SetLevel(log.TraceLevel)
|
return jobLogger
|
||||||
|
}
|
||||||
return logger
|
|
||||||
|
type JobLoggerWithReporter struct {
|
||||||
|
Reporter *report.Reporter
|
||||||
|
LogToTerminal bool
|
||||||
|
}
|
||||||
|
|
||||||
|
// WithJobLogger implements [runner.JobLoggerFactory].
|
||||||
|
func (j *JobLoggerWithReporter) WithJobLogger() *log.Logger {
|
||||||
|
jobLogger := log.New()
|
||||||
|
if j.LogToTerminal {
|
||||||
|
jobLogger.SetOutput(os.Stdout)
|
||||||
|
} else {
|
||||||
|
jobLogger.SetOutput(io.Discard)
|
||||||
|
}
|
||||||
|
jobLogger.AddHook(j.Reporter)
|
||||||
|
return jobLogger
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,8 +7,6 @@ import (
|
|||||||
"context"
|
"context"
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
"fmt"
|
"fmt"
|
||||||
"io"
|
|
||||||
"os"
|
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
"strings"
|
"strings"
|
||||||
"sync"
|
"sync"
|
||||||
@@ -29,23 +27,6 @@ import (
|
|||||||
"gitea.com/gitea/act_runner/internal/pkg/ver"
|
"gitea.com/gitea/act_runner/internal/pkg/ver"
|
||||||
)
|
)
|
||||||
|
|
||||||
type JobLoggerFactory struct {
|
|
||||||
reporter *report.Reporter
|
|
||||||
logToTerminal bool
|
|
||||||
}
|
|
||||||
|
|
||||||
// WithJobLogger implements [runner.JobLoggerFactory].
|
|
||||||
func (j *JobLoggerFactory) WithJobLogger() *log.Logger {
|
|
||||||
jobLogger := log.New()
|
|
||||||
if j.logToTerminal {
|
|
||||||
jobLogger.SetOutput(os.Stdout)
|
|
||||||
} else {
|
|
||||||
jobLogger.SetOutput(io.Discard)
|
|
||||||
}
|
|
||||||
jobLogger.AddHook(j.reporter)
|
|
||||||
return jobLogger
|
|
||||||
}
|
|
||||||
|
|
||||||
// Runner runs the pipeline.
|
// Runner runs the pipeline.
|
||||||
type Runner struct {
|
type Runner struct {
|
||||||
name string
|
name string
|
||||||
@@ -288,7 +269,7 @@ func (r *Runner) run(ctx context.Context, task *runnerv1.Task, reporter *report.
|
|||||||
reporter.Logf("workflow prepared")
|
reporter.Logf("workflow prepared")
|
||||||
|
|
||||||
// TODO GITEA
|
// TODO GITEA
|
||||||
ctx = runner.WithJobLoggerFactory(ctx, &JobLoggerFactory{reporter: reporter, logToTerminal: log.IsLevelEnabled(log.DebugLevel)})
|
ctx = runner.WithJobLoggerFactory(ctx, &JobLoggerWithReporter{Reporter: reporter, LogToTerminal: log.IsLevelEnabled(log.DebugLevel)})
|
||||||
|
|
||||||
execErr := executor(ctx)
|
execErr := executor(ctx)
|
||||||
reporter.SetOutputs(job.Outputs)
|
reporter.SetOutputs(job.Outputs)
|
||||||
|
|||||||
Reference in New Issue
Block a user