From 87a91a195fbd75970b80002535f5f45d6987d173 Mon Sep 17 00:00:00 2001 From: seth Date: Fri, 7 Apr 2023 04:19:04 -0400 Subject: move all ci over to nix --- flake.nix | 62 ++++++++++++++++++++++++++++++++++++++------------------------ 1 file changed, 38 insertions(+), 24 deletions(-) (limited to 'flake.nix') diff --git a/flake.nix b/flake.nix index d89c6d3..81352e5 100644 --- a/flake.nix +++ b/flake.nix @@ -43,21 +43,9 @@ aarch64-darwin ]; - packageFn = pkgs: let + packageFn = craneLib: cargoArtifacts: pkgs: let inherit (pkgs.lib) licenses maintainers platforms; - craneLib = let - toolchain = with pkgs.fenix; - combine [ - stable.cargo - stable.rustc - targets."x86_64-unknown-linux-musl".stable.rust-std - ]; - in - (crane.mkLib pkgs).overrideToolchain toolchain; inherit (craneLib) buildPackage; - cargoArtifacts = craneLib.buildDepsOnly { - src = ./.; - }; in { teawiebot = buildPackage { src = ./.; @@ -78,9 +66,26 @@ inherit system; overlays = [fenix.overlays.default]; }; + + toolchain = with pkgs.fenix; + with stable; + combine [ + cargo + rustc + rustfmt + clippy + targets."x86_64-unknown-linux-musl".stable.rust-std + ]; + + craneLib = (crane.mkLib pkgs).overrideToolchain toolchain; + + cargoArtifacts = craneLib.buildDepsOnly { + src = ./.; + }; in { packages = let - inherit (packageFn pkgs) teawiebot; + inherit (packageFn craneLib cargoArtifacts pkgs) teawiebot; + teawiebot-smol = teawiebot.overrideAttrs (_: { # statically link musl, optimize for size @@ -107,8 +112,23 @@ } // {default = self.packages.${system}.teawiebot;}; - checks = { + checks = let + commonArgs = { + src = ./.; + }; + + inherit (craneLib) cargoClippy cargoFmt; + in { inherit (self.packages.${system}) teawiebot; + + clippy = cargoClippy (commonArgs + // { + inherit cargoArtifacts; + cargoClippyExtraArgs = "--all-targets"; + }); + + fmt = cargoFmt commonArgs; + pre-commit-check = pre-commit-hooks.lib.${system}.run { src = ./.; hooks = { @@ -121,7 +141,7 @@ }; devShells = let - inherit (pkgs) fenix mkShell; + inherit (pkgs) mkShell; inherit (self.checks.${system}.pre-commit-check) shellHook; in { default = mkShell { @@ -129,16 +149,10 @@ packages = with pkgs; [ actionlint alejandra - clippy deadnix statix - (with fenix; - combine [ - stable.cargo - stable.rustc - stable.rustfmt - targets."x86_64-unknown-linux-musl".stable.rust-std - ]) + + toolchain ]; }; }; -- cgit v1.2.3