Skip to content

Commit

Permalink
nix: only build dev shell with nix packages for current GHC version
Browse files Browse the repository at this point in the history
  • Loading branch information
guibou committed Feb 12, 2022
1 parent a4164ac commit 00aa810
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 4 deletions.
8 changes: 6 additions & 2 deletions .github/workflows/nix.yml
Original file line number Diff line number Diff line change
Expand Up @@ -103,8 +103,12 @@ jobs:
authToken: ${{ secrets.HLS_CACHIX_AUTH_TOKEN }}
- name: Build development shell
run: nix develop --print-build-logs --profile dev
- name: Build all development shell
run: nix develop --print-build-logs .#all-dev-shells --profile dev
- name: Build all development shell (without nix dependencies)
run: nix develop --print-build-logs .#all-simple-dev-shells --profile dev
# We only build nix dev shell for current GHC version because some are
# failing with different GHC version on darwin.
- name: Build development shell with nix dependencies for current GHC version
run: nix develop --print-build-logs .#haskell-language-server-dev --profile dev
- name: Push development shell
if: ${{ env.HAS_TOKEN == 'true' }}
run: cachix push haskell-language-server dev
Expand Down
10 changes: 8 additions & 2 deletions flake.nix
Original file line number Diff line number Diff line change
Expand Up @@ -327,14 +327,17 @@
pname = old.pname + "-ghc${hpkgs.ghc.version}";
});
in with pkgs; rec {

devShells = {
# Developement shell with only compiler
simpleDevShells = {
haskell-language-server-dev = mkDevShell ghcDefault "cabal.project";
haskell-language-server-884-dev = mkDevShell ghc884 "cabal.project";
haskell-language-server-8107-dev = mkDevShell ghc8107 "cabal.project";
haskell-language-server-901-dev = mkDevShell ghc901 "cabal-ghc90.project";
haskell-language-server-921-dev = mkDevShell ghc921 "cabal-ghc921.project";
};

# Developement shell, haskell packages are also provided by nix
nixDevShells = {
haskell-language-server-dev-nix = mkDevShellWithNixDeps ghcDefault "cabal.project";
haskell-language-server-884-dev-nix = mkDevShellWithNixDeps ghc884 "cabal.project";
haskell-language-server-8107-dev-nix = mkDevShellWithNixDeps ghc8107 "cabal.project";
Expand All @@ -350,6 +353,8 @@
haskell-language-server-921 = mkExe ghc921;
};

devShells = simpleDevShells // nixDevShells;

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

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

Expand Down

0 comments on commit 00aa810

Please sign in to comment.