feat: init
This commit is contained in:
commit
06c3330999
16 changed files with 3817 additions and 0 deletions
83
templates/default/nix/packages/rust-workspace.nix
Normal file
83
templates/default/nix/packages/rust-workspace.nix
Normal file
|
@ -0,0 +1,83 @@
|
|||
/*
|
||||
This exposes all crates in the workspace as a single package attribute.
|
||||
It also enforces various tests.
|
||||
|
||||
Losely following the tutorial at https://crane.dev/examples/quick-start-workspace.html
|
||||
*/
|
||||
|
||||
{
|
||||
flake,
|
||||
pkgs,
|
||||
system,
|
||||
...
|
||||
}:
|
||||
let
|
||||
craneLib = flake.lib.mkCraneLib { inherit pkgs system; };
|
||||
src = craneLib.cleanCargoSource flake;
|
||||
commonArgs = {
|
||||
inherit src;
|
||||
strictDeps = true;
|
||||
|
||||
buildInputs = pkgs.lib.optionals pkgs.stdenv.isDarwin [
|
||||
# Additional darwin specific inputs can be set here
|
||||
pkgs.libiconv
|
||||
];
|
||||
|
||||
# Additional environment variables can be set directly
|
||||
# MY_CUSTOM_VAR = "some value";
|
||||
|
||||
meta.platforms = pkgs.lib.platforms.linux;
|
||||
};
|
||||
|
||||
# Build *just* the cargo dependencies (of the entire workspace),
|
||||
# so we can reuse all of that work (e.g. via cachix) when running in CI
|
||||
# It is *highly* recommended to use something like cargo-hakari to avoid
|
||||
# cache misses when building individual top-level-crates
|
||||
cargoArtifacts = craneLib.buildDepsOnly commonArgs;
|
||||
in
|
||||
craneLib.cargoBuild (
|
||||
commonArgs
|
||||
// {
|
||||
inherit cargoArtifacts;
|
||||
|
||||
# NB: we disable tests since we'll run them all via cargo-nextest
|
||||
doCheck = false;
|
||||
|
||||
passthru.tests = {
|
||||
clippy = craneLib.cargoClippy (
|
||||
commonArgs
|
||||
// {
|
||||
inherit cargoArtifacts;
|
||||
cargoClippyExtraArgs = "--all-targets -- --deny warnings";
|
||||
}
|
||||
);
|
||||
|
||||
doc = craneLib.cargoDoc (
|
||||
commonArgs
|
||||
// {
|
||||
inherit cargoArtifacts;
|
||||
}
|
||||
);
|
||||
|
||||
# Audit licenses
|
||||
deny = craneLib.cargoDeny {
|
||||
inherit src;
|
||||
};
|
||||
|
||||
nextest = craneLib.cargoNextest (
|
||||
commonArgs
|
||||
// {
|
||||
inherit cargoArtifacts;
|
||||
|
||||
nativeBuildInputs = [
|
||||
# native test binaries go here
|
||||
];
|
||||
partitions = 1;
|
||||
partitionType = "count";
|
||||
}
|
||||
);
|
||||
|
||||
};
|
||||
|
||||
}
|
||||
)
|
Loading…
Add table
Add a link
Reference in a new issue