git.delta.rocks / jrsonnet / refs/commits / 5585b94101d8

difftreelog

source

flake.nix5.3 KiBsourcehistory
1{2  description = "Jrsonnet";3  inputs = {4    nixpkgs.url = "github:nixos/nixpkgs/release-25.11";5    rust-overlay = {6      url = "github:oxalica/rust-overlay";7      inputs.nixpkgs.follows = "nixpkgs";8    };9    flake-parts = {10      url = "github:hercules-ci/flake-parts";11      inputs.nixpkgs-lib.follows = "nixpkgs";12    };13    crane.url = "github:ipetkov/crane";14    shelly.url = "github:CertainLach/shelly";15  };16  outputs =17    inputs@{18      nixpkgs,19      flake-parts,20      rust-overlay,21      crane,22      shelly,23      ...24    }:25    flake-parts.lib.mkFlake { inherit inputs; } {26      imports = [ shelly.flakeModule ];27      systems = inputs.nixpkgs.lib.systems.flakeExposed;28      perSystem =29        {30          config,31          system,32          ...33        }:34        let35          pkgs = import nixpkgs {36            inherit system;37            overlays = [ rust-overlay.overlays.default ];38            config.allowUnsupportedSystem = true;39          };40          rust = pkgs.rust-bin.fromRustupToolchainFile ./rust-toolchain.toml;41          craneLib = (crane.mkLib pkgs).overrideToolchain rust;42        in43        {44          legacyPackages = {45            jsonnetImpls = {46              go-jsonnet = pkgs.callPackage ./nix/go-jsonnet.nix { };47              sjsonnet = pkgs.callPackage ./nix/sjsonnet.nix { };48              jsonnet = pkgs.callPackage ./nix/jsonnet.nix { };49              # I didn't managed to build it, and nixpkgs version is marked as broken50              # haskell-jsonnet = pkgs.callPackage ./nix/haskell-jsonnet.nix { };51              rsjsonnet = pkgs.callPackage ./nix/rsjsonnet.nix { };52            };53          };54          packages = rec {55            default = jrsonnet;5657            jrsonnet = pkgs.callPackage ./nix/jrsonnet.nix {58              inherit craneLib;59            };60            jrsonnet-nightly = pkgs.callPackage ./nix/jrsonnet.nix {61              inherit craneLib;62              withNightlyFeatures = true;63            };64            jrsonnet-experimental = pkgs.callPackage ./nix/jrsonnet.nix {65              inherit craneLib;66              withExperimentalFeatures = true;67            };6869            jrsonnet-release = pkgs.callPackage ./nix/jrsonnet-release.nix {70              rustPlatform = pkgs.makeRustPlatform {71                rustc = rust;72                cargo = rust;73              };74            };7576            benchmarks = pkgs.callPackage ./nix/benchmarks.nix {77              inherit (config.legacyPackages.jsonnetImpls)78                go-jsonnet79                sjsonnet80                jsonnet81                rsjsonnet82                ;83              jrsonnetVariants = [84                {85                  drv = jrsonnet.override { forBenchmarks = true; };86                  name = "";87                }88              ];89            };90            benchmarks-quick = pkgs.callPackage ./nix/benchmarks.nix {91              inherit (config.legacyPackages.jsonnetImpls)92                go-jsonnet93                sjsonnet94                jsonnet95                rsjsonnet96                ;97              quick = true;98              jrsonnetVariants = [99                {100                  drv = jrsonnet.override { forBenchmarks = true; };101                  name = "";102                }103              ];104            };105            benchmarks-against-release = pkgs.callPackage ./nix/benchmarks.nix {106              inherit (config.legacyPackages.jsonnetImpls)107                go-jsonnet108                sjsonnet109                jsonnet110                rsjsonnet111                ;112              jrsonnetVariants = [113                {114                  drv = jrsonnet.override { forBenchmarks = true; };115                  name = "current";116                }117                {118                  drv = jrsonnet-nightly.override { forBenchmarks = true; };119                  name = "current-nightly";120                }121                {122                  drv = jrsonnet-release.override { forBenchmarks = true; };123                  name = "release";124                }125              ];126            };127            benchmarks-quick-against-release = pkgs.callPackage ./nix/benchmarks.nix {128              inherit (config.legacyPackages.jsonnetImpls)129                go-jsonnet130                sjsonnet131                jsonnet132                rsjsonnet133                ;134              quick = true;135              jrsonnetVariants = [136                {137                  drv = jrsonnet.override { forBenchmarks = true; };138                  name = "current";139                }140                {141                  drv = jrsonnet-nightly.override { forBenchmarks = true; };142                  name = "current-nightly";143                }144                {145                  drv = jrsonnet-release.override { forBenchmarks = true; };146                  name = "release";147                }148              ];149            };150          };151          shelly.shells.default = {152            factory = craneLib.devShell;153            packages =154              with pkgs;155              [156                cargo-edit157                cargo-outdated158                cargo-watch159                cargo-insta160                cargo-hack161                lld162                hyperfine163                graphviz164              ]165              ++ lib.optionals (!stdenv.isDarwin) [166                valgrind167              ];168          };169        };170    };171}