about summary refs log tree commit diff
path: root/tools/nixery
diff options
context:
space:
mode:
Diffstat (limited to 'tools/nixery')
-rw-r--r--tools/nixery/server/builder/builder.go1
-rw-r--r--tools/nixery/server/config/config.go16
2 files changed, 11 insertions, 6 deletions
diff --git a/tools/nixery/server/builder/builder.go b/tools/nixery/server/builder/builder.go
index a249384d9f..35a2c2f712 100644
--- a/tools/nixery/server/builder/builder.go
+++ b/tools/nixery/server/builder/builder.go
@@ -119,6 +119,7 @@ func BuildImage(ctx *context.Context, cfg *config.Config, cache *BuildCache, ima
 		}
 
 		args := []string{
+			"--timeout", cfg.Timeout,
 			"--argstr", "name", image.Name,
 			"--argstr", "packages", string(packages),
 		}
diff --git a/tools/nixery/server/config/config.go b/tools/nixery/server/config/config.go
index 4e3b70dcdc..5fba0e658a 100644
--- a/tools/nixery/server/config/config.go
+++ b/tools/nixery/server/config/config.go
@@ -102,10 +102,12 @@ func signingOptsFromEnv() *storage.SignedURLOptions {
 	}
 }
 
-func getConfig(key, desc string) string {
+func getConfig(key, desc, def string) string {
 	value := os.Getenv(key)
-	if value == "" {
+	if value == "" && def == "" {
 		log.Fatalln(desc + " must be specified")
+	} else if value == "" {
+		return def
 	}
 
 	return value
@@ -117,15 +119,17 @@ type Config struct {
 	Signing *storage.SignedURLOptions // Signing options to use for GCS URLs
 	Port    string                    // Port on which to launch HTTP server
 	Pkgs    *PkgSource                // Source for Nix package set
-	WebDir  string
+	Timeout string                    // Timeout for a single Nix builder (seconds)
+	WebDir  string                    // Directory with static web assets
 }
 
 func FromEnv() *Config {
 	return &Config{
-		Bucket:  getConfig("BUCKET", "GCS bucket for layer storage"),
-		Port:    getConfig("PORT", "HTTP port"),
+		Bucket:  getConfig("BUCKET", "GCS bucket for layer storage", ""),
+		Port:    getConfig("PORT", "HTTP port", ""),
 		Pkgs:    pkgSourceFromEnv(),
 		Signing: signingOptsFromEnv(),
-		WebDir:  getConfig("WEB_DIR", "Static web file dir"),
+		Timeout: getConfig("NIX_TIMEOUT", "Nix builder timeout", "60"),
+		WebDir:  getConfig("WEB_DIR", "Static web file dir", ""),
 	}
 }