From f2533d88924feb48834a07c4dc1e82cd21acd025 Mon Sep 17 00:00:00 2001
From: lassulus <lassulus@lassul.us>
Date: Sat, 11 Dec 2021 12:00:36 +0100
Subject: ci: add gcroots for successful builds

---
 krebs/3modules/ci.nix | 17 +++++++++++++++--
 1 file changed, 15 insertions(+), 2 deletions(-)

(limited to 'krebs/3modules')

diff --git a/krebs/3modules/ci.nix b/krebs/3modules/ci.nix
index bb941a1fb..822dbab61 100644
--- a/krebs/3modules/ci.nix
+++ b/krebs/3modules/ci.nix
@@ -108,8 +108,21 @@ let
                     # create a ShellCommand for each stage and add them to the build
                     stages = self.extract_stages(self.observer.getStdout())
                     self.build.addStepsAfterCurrentStep([
-                        steps.ShellCommand(name=stage, command=[stages[stage]])
-                        for stage in stages
+                        steps.ShellCommand(
+                          name=stage,
+                          env=dict(
+                            build_name = stage,
+                            build_script = stages[stage],
+                          ),
+                          command="${pkgs.writeDash "build.sh" ''
+                            set -xefu
+                            profile=${shell.escape profileRoot}/$build_name
+                            result=$("$build_script")
+                            if [ -n "$result" ]; then
+                              ${pkgs.nix}/bin/nix-env -p "$profile" --set "$result"
+                            fi
+                          ''}",
+                        ) for stage in stages
                     ])
 
                 return result
-- 
cgit v1.2.3