From 0aaf527731bb48fb9e569ddc9b029be6f3e70577 Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Sat, 23 Dec 2023 17:25:25 +0100 Subject: [PATCH] flake updates --- flake.lock | 45 +++++++++++----------- flake.nix | 107 ++++++++++++++++++++++++++++++++++++++--------------- 2 files changed, 100 insertions(+), 52 deletions(-) diff --git a/flake.lock b/flake.lock index 581cf41..5dbaf26 100644 --- a/flake.lock +++ b/flake.lock @@ -10,11 +10,11 @@ ] }, "locked": { - "lastModified": 1687811683, - "narHash": "sha256-j0+0y2CBlwrbVkVEZajjAy9gdzHRNCq8hQTRe+QXTAQ=", + "lastModified": 1689107909, + "narHash": "sha256-fb+zxf7AWesECHx1foXOM3NcKHLrdeXzGb6s2AhT6pE=", "owner": "icewind1991", "repo": "cross-naersk", - "rev": "5e987fcf0521602914773016b173403d0fa873f9", + "rev": "51de54599de569e6faa2ee33dd659c5c028d9911", "type": "github" }, "original": { @@ -28,11 +28,11 @@ "systems": "systems" }, "locked": { - "lastModified": 1685518550, - "narHash": "sha256-o2d0KcvaXzTrPRIo0kOLV0/QXHhDQ5DTi+OxcjO8xqY=", + "lastModified": 1701680307, + "narHash": "sha256-kAuep2h5ajznlPMD9rnQyffWG8EM/C73lejGofXvdM8=", "owner": "numtide", "repo": "flake-utils", - "rev": "a1720a10a6cfe8234c0e93907ffe81be440f4cef", + "rev": "4022d587cbbfd70fe950c1e2083a02621806a725", "type": "github" }, "original": { @@ -46,26 +46,25 @@ "nixpkgs": "nixpkgs" }, "locked": { - "lastModified": 1686242667, - "narHash": "sha256-I7Kwp06WX/9E+rEND1i1wjdKQQm3XiDxYOyNK9fuJu0=", - "owner": "icewind1991", + "lastModified": 1698420672, + "narHash": "sha256-/TdeHMPRjjdJub7p7+w55vyABrsJlt5QkznPYy55vKA=", + "owner": "nix-community", "repo": "naersk", - "rev": "6d245a3bbb2ee31ec726bb57b9a8b206302e7110", + "rev": "aeb58d5e8faead8980a807c840232697982d47b9", "type": "github" }, "original": { - "owner": "icewind1991", + "owner": "nix-community", "repo": "naersk", - "rev": "6d245a3bbb2ee31ec726bb57b9a8b206302e7110", "type": "github" } }, "nixpkgs": { "locked": { - "lastModified": 1685620773, - "narHash": "sha256-iQ+LmporQNdLz8uMJdP62TaAWeLUwl43/MYUBtWqulM=", - "path": "/nix/store/ipbqg8zvymxjlw96pl2mvgpigzc3wm7p-source", - "rev": "f0ba8235153dd2e25cf06cbf70d43efdd4443592", + "lastModified": 1702645756, + "narHash": "sha256-qKI6OR3TYJYQB3Q8mAZ+DG4o/BR9ptcv9UnRV2hzljc=", + "path": "/nix/store/7ix7lj4h8q5jl740bkwvpi611safrq0v-source", + "rev": "40c3c94c241286dd2243ea34d3aef8a488f9e4d0", "type": "path" }, "original": { @@ -75,16 +74,16 @@ }, "nixpkgs_2": { "locked": { - "lastModified": 1685789966, - "narHash": "sha256-pyqctu5Cq1jwymO3Os0/RNj5Nm3q5kmRCT24p7gtG70=", + "lastModified": 1703345962, + "narHash": "sha256-hfdT9SYVQD5C99+R8WK3IAe4i7hnE0t/LVpZdkva7w0=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "4eaa9e3eb36386de0c6a268ba5da72cafc959619", + "rev": "22c37d3a97260e831dc3295fafac83178d52565e", "type": "github" }, "original": { "id": "nixpkgs", - "ref": "release-23.05", + "ref": "release-23.11", "type": "indirect" } }, @@ -107,11 +106,11 @@ ] }, "locked": { - "lastModified": 1685759304, - "narHash": "sha256-I3YBH6MS3G5kGzNuc1G0f9uYfTcNY9NYoRc3QsykLk4=", + "lastModified": 1703297543, + "narHash": "sha256-d4QlzcoSNzb/iZheWtjOyRxoBSaLETSpViENGEkxv9g=", "owner": "oxalica", "repo": "rust-overlay", - "rev": "c535b4f3327910c96dcf21851bbdd074d0760290", + "rev": "fc77c8b416b1537522d30c710baaaaebf769f816", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index b417bd0..06fd149 100644 --- a/flake.nix +++ b/flake.nix @@ -1,8 +1,8 @@ { inputs = { - nixpkgs.url = "nixpkgs/release-23.05"; + nixpkgs.url = "nixpkgs/release-23.11"; flake-utils.url = "github:numtide/flake-utils"; - naersk.url = "github:icewind1991/naersk?rev=6d245a3bbb2ee31ec726bb57b9a8b206302e7110"; + naersk.url = "github:nix-community/naersk"; rust-overlay.url = "github:oxalica/rust-overlay"; rust-overlay.inputs.nixpkgs.follows = "nixpkgs"; rust-overlay.inputs.flake-utils.follows = "flake-utils"; @@ -19,9 +19,11 @@ nixpkgs, rust-overlay, ... - }: - flake-utils.lib.eachDefaultSystem (system: let - overlays = [ (import rust-overlay) ]; + }: let + inherit (flake-utils.lib) eachDefaultSystem eachSystem; + in + (eachDefaultSystem (system: let + overlays = [(import rust-overlay)]; pkgs = (import nixpkgs) { inherit system overlays; }; @@ -50,34 +52,60 @@ }; buildMatrix = targets: { - include = builtins.map (target: { - inherit target; - artifact_name = artifactForTarget target; - asset_name = assetNameForTarget target; - }) targets; + include = + builtins.map (target: { + inherit target; + artifact_name = artifactForTarget target; + asset_name = assetNameForTarget target; + }) + targets; }; hostNaersk = cross-naersk'.hostNaersk; - in rec { - packages = lib.attrsets.genAttrs targets (target: (cross-naersk'.buildPackage target) (nearskOpt // { - overrideMain = args: args // { - preConfigure = '' - cargo_build_options="$cargo_build_options --bin parse_demo" - ''; + + mkHydraJobs = system: { + parser = derivation { + name = "parser"; + builder = "mybuilder"; + inherit system; + }; + nested = { + attribute = derivation { + name = "nested-attribute"; + builder = "mybuilder"; + inherit system; + }; }; - })) // rec { - tf-demo-parser = packages.${hostTarget}; - check = hostNaersk.buildPackage (nearskOpt // { - mode = "check"; - }); - clippy = hostNaersk.buildPackage (nearskOpt // { - mode = "clippy"; - }); - test = hostNaersk.buildPackage (nearskOpt // { - release = false; - mode = "test"; - }); - default = tf-demo-parser; }; + in rec { + packages = + lib.attrsets.genAttrs targets (target: + (cross-naersk'.buildPackage target) (nearskOpt + // { + overrideMain = args: + args + // { + preConfigure = '' + cargo_build_options="$cargo_build_options --bin parse_demo" + ''; + }; + })) + // rec { + tf-demo-parser = packages.${hostTarget}; + check = hostNaersk.buildPackage (nearskOpt + // { + mode = "check"; + }); + clippy = hostNaersk.buildPackage (nearskOpt + // { + mode = "clippy"; + }); + test = hostNaersk.buildPackage (nearskOpt + // { + release = false; + mode = "test"; + }); + default = tf-demo-parser; + }; inherit targets; inherit releaseTargets; @@ -92,8 +120,29 @@ default = tf-demo-parser; }; + checks = { + fmt-check = pkgs.stdenvNoCC.mkDerivation { + name = "fmt-check"; + src = ./.; + doCheck = true; + dontBuild = true; + nativeBuildInputs = with pkgs; [alejandra shellcheck shfmt]; + checkPhase = '' + alejandra -c . + ''; + installPhase = '' + mkdir $out + ''; + }; + }; + devShells.default = pkgs.mkShell { nativeBuildInputs = with pkgs; [rust-bin.stable.latest.default bacon cargo-edit cargo-outdated rustfmt clippy cargo-audit hyperfine valgrind cargo-insta cargo-semver-checks]; }; + }) + // { + hydraJobs = eachSystem ["x86_64-linux" "aarch64-linux"] (system: { + parser = self.packages.${system}.tf-demo-parser; + }); }); }