From 0451973538c92d260cf887392ebdf6b16b8ec772 Mon Sep 17 00:00:00 2001 From: Rutger Broekhoff Date: Wed, 24 Jan 2024 23:37:50 +0100 Subject: Add flake checks --- flake.nix | 55 ++++++++++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 48 insertions(+), 7 deletions(-) (limited to 'flake.nix') diff --git a/flake.nix b/flake.nix index 458ecac..0c3fea5 100644 --- a/flake.nix +++ b/flake.nix @@ -1,12 +1,16 @@ { inputs = { nixpkgs.url = "https://flakehub.com/f/NixOS/nixpkgs/0.2311.*.tar.gz"; - flake-utils.url = "https://flakehub.com/f/numtide/flake-utils/0.1.88.tar.gz"; - crane.url = "https://flakehub.com/f/ipetkov/crane/0.15.1.tar.gz"; + flake-utils.url = "https://flakehub.com/f/numtide/flake-utils/0.1.90.tar.gz"; + crane.url = "https://flakehub.com/f/ipetkov/crane/0.16.0.tar.gz"; crane.inputs.nixpkgs.follows = "nixpkgs"; + advisory-db = { + url = "github:rustsec/advisory-db"; + flake = false; + }; }; - outputs = { self, crane, nixpkgs, flake-utils, ... }@inputs: + outputs = { self, nixpkgs, flake-utils, crane, advisory-db, ... }@inputs: flake-utils.lib.eachDefaultSystem (system: let @@ -16,19 +20,56 @@ }; craneLib = crane.lib.${system}; + src = craneLib.cleanCargoSource (craneLib.path ./.); - gitolfs3 = craneLib.buildPackage { + commonArgs = { + inherit src; + strictDeps = true; pname = "gitolfs3"; version = "0.1.0"; - src = craneLib.cleanCargoSource (craneLib.path ./.); }; + + cargoArtifacts = craneLib.buildDepsOnly commonArgs; + + gitolfs3 = craneLib.buildPackage (commonArgs // { + # We already have the gitolfs3-nextest check + doCheck = false; + }); in { + checks = { + inherit gitolfs3; + + gitolfs3-clippy = craneLib.cargoClippy (commonArgs // { + inherit cargoArtifacts; + cargoClippyExtraArgs = "--all-targets -- --deny warnings"; + }); + + gitolfs3-doc = craneLib.cargoDoc (commonArgs // { + inherit cargoArtifacts; + }); + + # Check formatting + gitolfs3-fmt = craneLib.cargoFmt commonArgs; + + # Audit dependencies + gitolfs3-audit = craneLib.cargoAudit (commonArgs // { + inherit advisory-db; + }); + + # Run tests with cargo-nextest + gitolfs3-nextest = craneLib.cargoNextest (commonArgs // { + inherit cargoArtifacts; + partitions = 1; + partitionType = "count"; + }); + }; + packages.gitolfs3 = gitolfs3; packages.default = self.packages.${system}.gitolfs3; - devShells.default = pkgs.mkShell { - inputsFrom = [ gitolfs3 ]; + devShells.default = craneLib.devShell { + checks = self.checks.${system}; }; formatter = pkgs.nixpkgs-fmt; -- cgit v1.2.3