Skip to content

Commit b398d1b

Browse files
committed
nix: only build dev shell with nix packages for current GHC version
1 parent e8095a1 commit b398d1b

File tree

2 files changed

+14
-4
lines changed

2 files changed

+14
-4
lines changed

.github/workflows/nix.yml

+6-2
Original file line numberDiff line numberDiff line change
@@ -103,8 +103,12 @@ jobs:
103103
authToken: ${{ secrets.HLS_CACHIX_AUTH_TOKEN }}
104104
- name: Build development shell
105105
run: nix develop --print-build-logs --profile dev
106-
- name: Build all development shell
107-
run: nix develop --print-build-logs .#all-dev-shells --profile dev
106+
- name: Build all development shell (without nix dependencies)
107+
run: nix develop --print-build-logs .#all-simple-dev-shells --profile dev
108+
# We only build nix dev shell for current GHC version because some are
109+
# failing with different GHC version on darwin.
110+
- name: Build development shell with nix dependencies for current GHC version
111+
run: nix develop --print-build-logs .#haskell-language-server-dev --profile dev
108112
- name: Push development shell
109113
if: ${{ env.HAS_TOKEN == 'true' }}
110114
run: cachix push haskell-language-server dev

flake.nix

+8-2
Original file line numberDiff line numberDiff line change
@@ -327,14 +327,17 @@
327327
pname = old.pname + "-ghc${hpkgs.ghc.version}";
328328
});
329329
in with pkgs; rec {
330-
331-
devShells = {
330+
# Developement shell with only compiler
331+
simpleDevShells = {
332332
haskell-language-server-dev = mkDevShell ghcDefault "cabal.project";
333333
haskell-language-server-884-dev = mkDevShell ghc884 "cabal.project";
334334
haskell-language-server-8107-dev = mkDevShell ghc8107 "cabal.project";
335335
haskell-language-server-901-dev = mkDevShell ghc901 "cabal-ghc90.project";
336336
haskell-language-server-921-dev = mkDevShell ghc921 "cabal-ghc921.project";
337+
};
337338

339+
# Developement shell, haskell packages are also provided by nix
340+
nixDevShells = {
338341
haskell-language-server-dev-nix = mkDevShellWithNixDeps ghcDefault "cabal.project";
339342
haskell-language-server-884-dev-nix = mkDevShellWithNixDeps ghc884 "cabal.project";
340343
haskell-language-server-8107-dev-nix = mkDevShellWithNixDeps ghc8107 "cabal.project";
@@ -350,6 +353,8 @@
350353
haskell-language-server-921 = mkExe ghc921;
351354
};
352355

356+
devShells = simpleDevShells // nixDevShells;
357+
353358
packages = allPackages // {
354359
# See https://github.com/NixOS/nix/issues/5591
355360
# nix flake cannot build a list/set of derivation in one command.
@@ -362,6 +367,7 @@
362367
# Same for all shells
363368
all-dev-shells = linkFarmFromDrvs "all-dev-shells" (builtins.map (shell: shell.inputDerivation) (lib.unique (builtins.attrValues devShells)));
364369

370+
all-simple-dev-shells = linkFarmFromDrvs "all-dev-shells" (builtins.map (shell: shell.inputDerivation) (lib.unique (builtins.attrValues simpleDevShells)));
365371
docs = docs;
366372
};
367373

0 commit comments

Comments
 (0)