circus/flake.nix
NotAShelf 17fb0bbe80
nix: build migrate-cli crate
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: I022828d4e83b1ccf04a3a6898dafb9ca6a6a6964
2026-02-02 01:15:04 +03:00

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
];
};
};
}