Signed-off-by: NotAShelf <raf@notashelf.dev> Change-Id: I022828d4e83b1ccf04a3a6898dafb9ca6a6a6964
77 lines
1.8 KiB
Nix
77 lines
1.8 KiB
Nix
{
|
|
inputs = {
|
|
nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
|
|
crane.url = "github:ipetkov/crane";
|
|
};
|
|
|
|
outputs = {
|
|
nixpkgs,
|
|
crane,
|
|
...
|
|
}: let
|
|
# FIXME: allow multi-system when I can be arsed to write the abstractions
|
|
system = "x86_64-linux";
|
|
pkgs = nixpkgs.legacyPackages.${system};
|
|
craneLib = crane.mkLib pkgs;
|
|
src = craneLib.cleanCargoSource ./.;
|
|
|
|
commonArgs = {
|
|
pname = "feel-ci";
|
|
inherit src;
|
|
strictDeps = true;
|
|
};
|
|
|
|
cargoArtifacts = craneLib.buildDepsOnly commonArgs;
|
|
|
|
# Build individual workspace members
|
|
server = craneLib.buildPackage (commonArgs
|
|
// {
|
|
inherit cargoArtifacts;
|
|
pname = "server";
|
|
cargoExtraArgs = "--package server";
|
|
});
|
|
|
|
evaluator = craneLib.buildPackage (commonArgs
|
|
// {
|
|
inherit cargoArtifacts;
|
|
pname = "evaluator";
|
|
cargoExtraArgs = "--package evaluator";
|
|
});
|
|
|
|
queue-runner = craneLib.buildPackage (commonArgs
|
|
// {
|
|
inherit cargoArtifacts;
|
|
pname = "queue-runner";
|
|
cargoExtraArgs = "--package queue-runner";
|
|
});
|
|
|
|
common = craneLib.buildPackage (commonArgs
|
|
// {
|
|
inherit cargoArtifacts;
|
|
pname = "common";
|
|
cargoExtraArgs = "--package common";
|
|
});
|
|
|
|
migrate-cli = craneLib.buildPackage (commonArgs
|
|
// {
|
|
inherit cargoArtifacts;
|
|
pname = "migrate-cli";
|
|
cargoExtraArgs = "--package migrate-cli";
|
|
});
|
|
in {
|
|
packages.${system} = {
|
|
inherit server evaluator queue-runner common migrate-cli;
|
|
};
|
|
|
|
devShells.${system}.default = craneLib.devShell {
|
|
name = "fc";
|
|
inputsFrom = [server];
|
|
packages = with pkgs; [
|
|
rust-analyzer
|
|
postgresql
|
|
pkg-config
|
|
openssl
|
|
];
|
|
};
|
|
};
|
|
}
|