From 5788cc3c15561f6e86857e54b4020889bf342190 Mon Sep 17 00:00:00 2001
From: Jean-Paul Calderone <exarkun@twistedmatrix.com>
Date: Mon, 28 Jun 2021 08:14:14 -0400
Subject: [PATCH] Try having morph build everything it wants and then caching
 it

---
 .gitlab-ci.yml | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index b91f7d5f..43e52dad 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -20,6 +20,23 @@ unit-tests:
   script:
     - "nix-shell --run 'nix-build nixos/unit-tests.nix' && cat result"
 
+morph-builds:
+  stage: "test"
+  environment:
+    # CACHIX_AUTH_TOKEN, which lets us push to cachix, is supplied by GitLab
+    # thanks to project-level configuration.
+    CACHIX_NAME: "privatestorage-opensource"
+
+  script:
+    - |
+      nix-env -iA nixpkgs.cachix nixpkgs.bash
+      cachix use privatestorage-opensource
+      nix path-info --all > /tmp/store-path-pre-build
+      for grid in morph/grid/*/grid.nix; do
+          morph build "${grid}"
+      done
+      bash -c "comm -13 <(sort /tmp/store-path-pre-build | grep -v '\.drv$') <(nix path-info --all | grep -v '\.drv$' | sort) | cachix push $CACHIX_NAME"
+
 vulnerability-scan:
   stage: "test"
   script:
-- 
GitLab