Allow to store logs in files (#3568)

Co-authored-by: Anbraten <6918444+anbraten@users.noreply.github.com>
This commit is contained in:
qwerty287
2024-06-06 14:34:57 +02:00
committed by GitHub
parent 2c7edbf4c8
commit c72468478d
9 changed files with 135 additions and 4 deletions

View File

@@ -241,6 +241,17 @@ var flags = append([]cli.Flag{
Usage: "Disable version check in admin web ui.",
Name: "skip-version-check",
},
&cli.StringFlag{
EnvVars: []string{"WOODPECKER_LOG_STORE"},
Name: "log-store",
Usage: "log store to use ('database' or 'file')",
Value: "database",
},
&cli.StringFlag{
EnvVars: []string{"WOODPECKER_LOG_STORE_FILE_PATH"},
Name: "log-store-file-path",
Usage: "directory used for file based log storage",
},
//
// backend options for pipeline compiler
//

View File

@@ -276,6 +276,11 @@ func setupEvilGlobals(c *cli.Context, s store.Store) error {
}
server.Config.Services.Manager = serviceManager
server.Config.Services.LogStore, err = setupLogStore(c, s)
if err != nil {
return fmt.Errorf("could not setup log store: %w", err)
}
// authentication
server.Config.Pipeline.AuthenticatePublicRepos = c.Bool("authenticate-public-repos")

View File

@@ -30,6 +30,8 @@ import (
"go.woodpecker-ci.org/woodpecker/v2/server"
"go.woodpecker-ci.org/woodpecker/v2/server/cache"
"go.woodpecker-ci.org/woodpecker/v2/server/queue"
logService "go.woodpecker-ci.org/woodpecker/v2/server/services/log"
"go.woodpecker-ci.org/woodpecker/v2/server/services/log/file"
"go.woodpecker-ci.org/woodpecker/v2/server/store"
"go.woodpecker-ci.org/woodpecker/v2/server/store/datastore"
)
@@ -154,3 +156,12 @@ func setupMetrics(g *errgroup.Group, _store store.Store) {
}
})
}
func setupLogStore(c *cli.Context, s store.Store) (logService.Service, error) {
switch c.String("log-store") {
case "file":
return file.NewLogStore(c.String("log-store-file-path"))
default:
return s, nil
}
}