diff --git a/apps/runner/cmd/runner/config/config.go b/apps/runner/cmd/runner/config/config.go index 0d213c467..cf1df54c1 100644 --- a/apps/runner/cmd/runner/config/config.go +++ b/apps/runner/cmd/runner/config/config.go @@ -137,17 +137,32 @@ func (c *Config) GetOtelHeaders() map[string]string { } func GetContainerRuntime() string { + if config == nil { + return os.Getenv("CONTAINER_RUNTIME") + } return config.ContainerRuntime } func GetContainerNetwork() string { + if config == nil { + return os.Getenv("CONTAINER_NETWORK") + } return config.ContainerNetwork } func GetEnvironment() string { + if config == nil { + return os.Getenv("ENVIRONMENT") + } return config.Environment } func GetBuildEngine() string { + if config == nil { + if buildEngine := os.Getenv("BUILD_ENGINE"); buildEngine != "" { + return buildEngine + } + return "buildkit" + } return config.BuildEngine } diff --git a/apps/runner/cmd/runner/config/config_test.go b/apps/runner/cmd/runner/config/config_test.go new file mode 100644 index 000000000..ef3455409 --- /dev/null +++ b/apps/runner/cmd/runner/config/config_test.go @@ -0,0 +1,43 @@ +package config + +import "testing" + +func TestGettersFallbackToEnvironmentWhenConfigIsUninitialized(t *testing.T) { + oldConfig := config + config = nil + t.Cleanup(func() { + config = oldConfig + }) + + t.Setenv("CONTAINER_RUNTIME", "containerd") + t.Setenv("CONTAINER_NETWORK", "boxlite-net") + t.Setenv("ENVIRONMENT", "development") + t.Setenv("BUILD_ENGINE", "legacy") + + if got := GetContainerRuntime(); got != "containerd" { + t.Fatalf("GetContainerRuntime() = %q, want containerd", got) + } + if got := GetContainerNetwork(); got != "boxlite-net" { + t.Fatalf("GetContainerNetwork() = %q, want boxlite-net", got) + } + if got := GetEnvironment(); got != "development" { + t.Fatalf("GetEnvironment() = %q, want development", got) + } + if got := GetBuildEngine(); got != "legacy" { + t.Fatalf("GetBuildEngine() = %q, want legacy", got) + } +} + +func TestGetBuildEngineDefaultsWhenConfigIsUninitialized(t *testing.T) { + oldConfig := config + config = nil + t.Cleanup(func() { + config = oldConfig + }) + + t.Setenv("BUILD_ENGINE", "") + + if got := GetBuildEngine(); got != "buildkit" { + t.Fatalf("GetBuildEngine() = %q, want buildkit", got) + } +}