about summary refs log tree commit diff
path: root/pkgs/top-level/release-haskell.nix
diff options
context:
space:
mode:
authorsternenseemann <sternenseemann@systemli.org>2022-04-11 01:36:54 +0200
committersternenseemann <sternenseemann@systemli.org>2022-04-11 03:15:55 +0200
commit7ad0327b599c653cd8eecdae6dcb1eb2ceccc29e (patch)
tree75f025de6345f393b3525f6f859075a9cc836cbb /pkgs/top-level/release-haskell.nix
parentfde2e98a0116ddba74569d11f281cd87fbdf13ab (diff)
release-haskell.nix: build boot ghcjs on Hydra
By telling Hydra where to look explicitly, it can be instrumented
to build the boot ghcjs which is only about 300MB. This saves at
least some time compiling for users and will also provide some
eval CI automatically.
Diffstat (limited to 'pkgs/top-level/release-haskell.nix')
-rw-r--r--pkgs/top-level/release-haskell.nix13
1 files changed, 12 insertions, 1 deletions
diff --git a/pkgs/top-level/release-haskell.nix b/pkgs/top-level/release-haskell.nix
index 4eb8d040a7da3..720b4e7fc3303 100644
--- a/pkgs/top-level/release-haskell.nix
+++ b/pkgs/top-level/release-haskell.nix
@@ -129,7 +129,18 @@ let
   jobs = recursiveUpdateMany [
     (mapTestOn {
       haskellPackages = packagePlatforms pkgs.haskellPackages;
-      haskell.compiler = packagePlatforms pkgs.haskell.compiler;
+      haskell.compiler = packagePlatforms pkgs.haskell.compiler // (lib.genAttrs [
+        "ghcjs"
+        "ghcjs810"
+      ] (ghcjsName: {
+        # We can't build ghcjs itself, since it exceeds 3GB (Hydra's output limit) due
+        # to the size of its bundled libs. We can however save users a bit of compile
+        # time by building the bootstrap ghcjs on Hydra. For this reason, we overwrite
+        # the ghcjs attributes in haskell.compiler with a reference to the bootstrap
+        # ghcjs attribute in their bootstrap package set (exposed via passthru) which
+        # would otherwise be ignored by Hydra.
+        bootGhcjs = (packagePlatforms pkgs.haskell.compiler.${ghcjsName}.passthru).bootGhcjs;
+      }));
 
       tests.haskell = packagePlatforms pkgs.tests.haskell;