webnsupdate/flake-modules/package.nix
Jalil David Salamé Messina 5b7ce3a49a
All checks were successful
/ build (push) Successful in 1s
/ checks (x86_64-linux, clippy) (push) Successful in 1s
/ checks (x86_64-linux, deny) (push) Successful in 1s
/ checks (x86_64-linux, module-ipv4-only-test) (push) Successful in 2s
/ checks (x86_64-linux, module-ipv4-test) (push) Successful in 1s
/ checks (x86_64-linux, module-ipv6-only-test) (push) Successful in 1s
/ checks (x86_64-linux, module-ipv6-test) (push) Successful in 2s
/ checks (x86_64-linux, module-nginx-test) (push) Successful in 2s
/ checks (x86_64-linux, nextest) (push) Successful in 1s
/ checks (x86_64-linux, treefmt) (push) Successful in 1s
/ report-size (push) Successful in 3s
ci: run cargo-deny to ensure I agree to all license terms
Closes #187
2025-07-13 19:26:40 +02:00

74 lines
1.8 KiB
Nix

{ inputs, ... }:
let
inherit (inputs) crane;
in
{
flake.overlays.default = final: prev: {
webnsupdate = prev.callPackage ../default.nix {
inherit crane;
pkgSrc = inputs.self;
};
};
perSystem =
{
system,
pkgs,
lib,
...
}:
let
craneLib = (crane.mkLib pkgs).overrideToolchain (pkgs: pkgs.rust-bin.stable.latest.default);
src = craneLib.cleanCargoSource inputs.self;
commonArgs = {
inherit src;
strictDeps = true;
doCheck = false; # tests will be run in the `checks` derivation
NEXTEST_HIDE_PROGRESS_BAR = 1;
NEXTEST_FAILURE_OUTPUT = "immediate-final";
nativeBuildInputs = [ pkgs.mold ];
meta = {
license = lib.licenses.mit;
homepage = "https://github.com/jalil-salame/webnsupdate";
mainProgram = "webnsupdate";
};
};
cargoArtifacts = craneLib.buildDepsOnly commonArgs;
withArtifacts = lib.mergeAttrsList [
commonArgs
{ inherit cargoArtifacts; }
];
webnsupdate = pkgs.callPackage ../default.nix {
inherit craneLib cargoArtifacts src;
};
in
{
# Consume the rust-rust-overlay
_module.args.pkgs = import inputs.nixpkgs {
inherit system;
overlays = [ inputs.rust-overlay.overlays.default ];
};
checks = {
nextest = craneLib.cargoNextest withArtifacts;
deny = craneLib.cargoDeny commonArgs;
clippy = craneLib.cargoClippy (
lib.mergeAttrsList [
withArtifacts
{ cargoClippyExtraArgs = "--all-targets -- --deny warnings"; }
]
);
};
packages = {
inherit webnsupdate;
inherit (pkgs) git-cliff;
default = webnsupdate;
};
};
}