From cecb92e0dfb170858be9a0b5e29dd4b60801dee6 Mon Sep 17 00:00:00 2001 From: 6543 <6543@obermui.de> Date: Sat, 6 Jun 2026 16:50:22 +0200 Subject: [PATCH 1/4] Load .env explizite and error out on issue --- cmd/agent/core/run.go | 2 -- cmd/agent/main.go | 7 +++++++ cmd/cli/main.go | 7 ++++++- cmd/server/main.go | 7 ++++++- cmd/server/man.go | 9 ++++++++- 5 files changed, 27 insertions(+), 5 deletions(-) diff --git a/cmd/agent/core/run.go b/cmd/agent/core/run.go index d72f62a8442..d8feaf6ecca 100644 --- a/cmd/agent/core/run.go +++ b/cmd/agent/core/run.go @@ -19,8 +19,6 @@ import ( "os" "slices" - // Load config from .env file. - _ "github.com/joho/godotenv/autoload" "github.com/rs/zerolog/log" "github.com/urfave/cli/v3" diff --git a/cmd/agent/main.go b/cmd/agent/main.go index 2eedd8f186b..e7791f310e0 100644 --- a/cmd/agent/main.go +++ b/cmd/agent/main.go @@ -16,7 +16,9 @@ package main import ( "context" + "os" + "github.com/joho/godotenv" "github.com/rs/zerolog/log" "go.woodpecker-ci.org/woodpecker/v3/cmd/agent/core" @@ -34,6 +36,11 @@ var backends = []backend_types.Backend{ } func main() { + if err := godotenv.Load(); err != nil { + log.Error().Err(err) + os.Exit(1) + } + ctx := utils.WithContextSigtermCallback(context.Background(), func() { log.Info().Msg("termination signal is received, shutting down agent") }) diff --git a/cmd/cli/main.go b/cmd/cli/main.go index d6670dadc12..fd1265d522a 100644 --- a/cmd/cli/main.go +++ b/cmd/cli/main.go @@ -18,13 +18,18 @@ import ( "context" "os" - _ "github.com/joho/godotenv/autoload" + "github.com/joho/godotenv" "github.com/rs/zerolog/log" "go.woodpecker-ci.org/woodpecker/v3/shared/utils" ) func main() { + if err := godotenv.Load(); err != nil { + log.Error().Err(err) + os.Exit(1) + } + ctx := utils.WithContextSigtermCallback(context.Background(), func() { log.Info().Msg("termination signal is received, terminate cli") }) diff --git a/cmd/server/main.go b/cmd/server/main.go index 778b4a84728..441628c3733 100644 --- a/cmd/server/main.go +++ b/cmd/server/main.go @@ -20,7 +20,7 @@ import ( "context" "os" - _ "github.com/joho/godotenv/autoload" + "github.com/joho/godotenv" "github.com/rs/zerolog/log" _ "go.woodpecker-ci.org/woodpecker/v3/cmd/server/openapi" @@ -28,6 +28,11 @@ import ( ) func main() { + if err := godotenv.Load(); err != nil { + log.Error().Err(err) + os.Exit(1) + } + ctx := utils.WithContextSigtermCallback(context.Background(), func() { log.Info().Msg("termination signal is received, shutting down server") }) diff --git a/cmd/server/man.go b/cmd/server/man.go index 915601722e5..8a837f30a15 100644 --- a/cmd/server/man.go +++ b/cmd/server/man.go @@ -18,14 +18,21 @@ package main import ( "fmt" + "os" - _ "github.com/joho/godotenv/autoload" + "github.com/joho/godotenv" + "github.com/rs/zerolog/log" docs "github.com/urfave/cli-docs/v3" _ "go.woodpecker-ci.org/woodpecker/v3/cmd/server/openapi" ) func main() { + if err := godotenv.Load(); err != nil { + log.Error().Err(err) + os.Exit(1) + } + app := genApp() md, err := docs.ToMan(app) if err != nil { From 34bc38171e386264e8be473032ee88051fd684b4 Mon Sep 17 00:00:00 2001 From: 6543 <6543@obermui.de> Date: Sat, 6 Jun 2026 16:57:51 +0200 Subject: [PATCH 2/4] Fprintf --- cmd/agent/main.go | 2 +- cmd/agent/man.go | 6 ++++++ cmd/cli/main.go | 2 +- cmd/server/main.go | 2 +- cmd/server/man.go | 2 +- 5 files changed, 10 insertions(+), 4 deletions(-) diff --git a/cmd/agent/main.go b/cmd/agent/main.go index e7791f310e0..1265a252d65 100644 --- a/cmd/agent/main.go +++ b/cmd/agent/main.go @@ -37,7 +37,7 @@ var backends = []backend_types.Backend{ func main() { if err := godotenv.Load(); err != nil { - log.Error().Err(err) + fmt.Fprintf(os.Stderr, "Error could not load .env: %s", err) os.Exit(1) } diff --git a/cmd/agent/man.go b/cmd/agent/man.go index 456e226de3a..f4c7e892bbc 100644 --- a/cmd/agent/man.go +++ b/cmd/agent/man.go @@ -19,6 +19,7 @@ package main import ( "fmt" + "github.com/joho/godotenv" docs "github.com/urfave/cli-docs/v3" "go.woodpecker-ci.org/woodpecker/v3/cmd/agent/core" @@ -35,6 +36,11 @@ var backends = []backend_types.Backend{ } func main() { + if err := godotenv.Load(); err != nil { + fmt.Fprintf(os.Stderr, "Error could not load .env: %s", err) + os.Exit(1) + } + app := core.GenApp(backends) md, err := docs.ToMan(app) if err != nil { diff --git a/cmd/cli/main.go b/cmd/cli/main.go index fd1265d522a..7c7cb21c5c5 100644 --- a/cmd/cli/main.go +++ b/cmd/cli/main.go @@ -26,7 +26,7 @@ import ( func main() { if err := godotenv.Load(); err != nil { - log.Error().Err(err) + fmt.Fprintf(os.Stderr, "Error could not load .env: %s", err) os.Exit(1) } diff --git a/cmd/server/main.go b/cmd/server/main.go index 441628c3733..4a4144ff20c 100644 --- a/cmd/server/main.go +++ b/cmd/server/main.go @@ -29,7 +29,7 @@ import ( func main() { if err := godotenv.Load(); err != nil { - log.Error().Err(err) + fmt.Fprintf(os.Stderr, "Error could not load .env: %s", err) os.Exit(1) } diff --git a/cmd/server/man.go b/cmd/server/man.go index 8a837f30a15..a49ae77eda6 100644 --- a/cmd/server/man.go +++ b/cmd/server/man.go @@ -29,7 +29,7 @@ import ( func main() { if err := godotenv.Load(); err != nil { - log.Error().Err(err) + fmt.Fprintf(os.Stderr, "Error could not load .env: %s", err) os.Exit(1) } From 8502b18efd436226a6acc37a66df2549ea5fd39e Mon Sep 17 00:00:00 2001 From: 6543 <6543@obermui.de> Date: Sat, 6 Jun 2026 17:06:03 +0200 Subject: [PATCH 3/4] imports --- cmd/agent/main.go | 1 + cmd/agent/man.go | 1 + cmd/cli/main.go | 1 + cmd/server/main.go | 1 + cmd/server/man.go | 1 - 5 files changed, 4 insertions(+), 1 deletion(-) diff --git a/cmd/agent/main.go b/cmd/agent/main.go index 1265a252d65..f452400732e 100644 --- a/cmd/agent/main.go +++ b/cmd/agent/main.go @@ -16,6 +16,7 @@ package main import ( "context" + "fmt" "os" "github.com/joho/godotenv" diff --git a/cmd/agent/man.go b/cmd/agent/man.go index f4c7e892bbc..77359c961ab 100644 --- a/cmd/agent/man.go +++ b/cmd/agent/man.go @@ -18,6 +18,7 @@ package main import ( "fmt" + "os" "github.com/joho/godotenv" docs "github.com/urfave/cli-docs/v3" diff --git a/cmd/cli/main.go b/cmd/cli/main.go index 7c7cb21c5c5..c92f442d0c7 100644 --- a/cmd/cli/main.go +++ b/cmd/cli/main.go @@ -16,6 +16,7 @@ package main import ( "context" + "fmt" "os" "github.com/joho/godotenv" diff --git a/cmd/server/main.go b/cmd/server/main.go index 4a4144ff20c..127c908cddd 100644 --- a/cmd/server/main.go +++ b/cmd/server/main.go @@ -18,6 +18,7 @@ package main import ( "context" + "fmt" "os" "github.com/joho/godotenv" diff --git a/cmd/server/man.go b/cmd/server/man.go index a49ae77eda6..92b073e006f 100644 --- a/cmd/server/man.go +++ b/cmd/server/man.go @@ -21,7 +21,6 @@ import ( "os" "github.com/joho/godotenv" - "github.com/rs/zerolog/log" docs "github.com/urfave/cli-docs/v3" _ "go.woodpecker-ci.org/woodpecker/v3/cmd/server/openapi" From 76732c3c79015b811b479645fd5abe36940cf2a0 Mon Sep 17 00:00:00 2001 From: 6543 <6543@obermui.de> Date: Sat, 6 Jun 2026 17:13:29 +0200 Subject: [PATCH 4/4] cspell --- .cspell.json | 1 + 1 file changed, 1 insertion(+) diff --git a/.cspell.json b/.cspell.json index 5c3d860d677..15e94eb46fa 100644 --- a/.cspell.json +++ b/.cspell.json @@ -80,6 +80,7 @@ "gocritic", "GODEBUG", "godoc", + "godotenv", "Gogs", "golangci", "gomod",