diff --git a/ci/default.nix b/ci/default.nix new file mode 100644 index 000000000000..fb5ca04fe728 --- /dev/null +++ b/ci/default.nix @@ -0,0 +1,27 @@ +let + pinnedNixpkgs = builtins.fromJSON (builtins.readFile ./pinned-nixpkgs.json); +in +{ + system ? builtins.currentSystem, + + nixpkgs ? null, +}: +let + nixpkgs' = + if nixpkgs == null then + fetchTarball { + url = "https://github.com/NixOS/nixpkgs/archive/${pinnedNixpkgs.rev}.tar.gz"; + sha256 = pinnedNixpkgs.sha256; + } + else + nixpkgs; + + pkgs = import nixpkgs' { + inherit system; + config = { }; + overlays = [ ]; + }; +in +{ + inherit pkgs; +} diff --git a/shell.nix b/shell.nix index 9913ff5dbc7d..517e29c8b738 100644 --- a/shell.nix +++ b/shell.nix @@ -11,23 +11,12 @@ # # nix-shell --arg nixpkgs ./. # -let - pinnedNixpkgs = builtins.fromJSON (builtins.readFile ci/pinned-nixpkgs.json); -in { system ? builtins.currentSystem, - - nixpkgs ? fetchTarball { - url = "https://github.com/NixOS/nixpkgs/archive/${pinnedNixpkgs.rev}.tar.gz"; - sha256 = pinnedNixpkgs.sha256; - }, + nixpkgs ? null, }: let - pkgs = import nixpkgs { - inherit system; - config = {}; - overlays = []; - }; + inherit (import ./ci { inherit nixpkgs system; }) pkgs; in pkgs.mkShellNoCC { packages = [