circus/flake.nix
NotAShelf 389bf71d82
nix: VM tests; demo VM; cleanup
Signed-off-by: NotAShelf <raf@notashelf.dev>
Change-Id: If0fe78ab43436c7e85fa357483bb4c8c6a6a6964
2026-02-02 02:45:18 +03:00

107 lines
2.8 KiB
Nix

{
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs?ref=nixpkgs-unstable";
crane.url = "github:ipetkov/crane";
};
outputs = {
nixpkgs,
crane,
self,
...
}: let
inherit (nixpkgs) lib;
forAllSystems = lib.genAttrs ["x86_64-linux" "aarch64-linux"];
in {
# NixOS module for feel-ci
nixosModules = {
fc-ci = ./nix/modules/nixos.nix;
default = self.nixosModules.fc-ci;
};
packages = forAllSystems (system: let
pkgs = nixpkgs.legacyPackages.${system};
craneLib = crane.mkLib pkgs;
src = let
fs = lib.fileset;
s = ./.;
in
fs.toSource {
root = s;
fileset = fs.unions [
(s + /crates)
(s + /Cargo.lock)
(s + /Cargo.toml)
];
};
commonArgs = {
pname = "feel-ci";
inherit src;
strictDeps = true;
nativeBuildInputs = with pkgs; [pkg-config];
buildInputs = with pkgs; [openssl];
};
cargoArtifacts = craneLib.buildDepsOnly commonArgs;
in {
demo-vm = pkgs.callPackage ./nix/demo-vm.nix {
nixosModule = self.nixosModules.default;
fc-packages = {
inherit (self.packages.${system}) fc-common fc-evaluator fc-migrate-cli fc-queue-runner fc-server;
};
};
# FC Packages
fc-common = pkgs.callPackage ./nix/packages/fc-common.nix {
inherit craneLib commonArgs cargoArtifacts;
};
fc-evaluator = pkgs.callPackage ./nix/packages/fc-evaluator.nix {
inherit craneLib commonArgs cargoArtifacts;
};
fc-migrate-cli = pkgs.callPackage ./nix/packages/fc-migrate-cli.nix {
inherit craneLib commonArgs cargoArtifacts;
};
fc-queue-runner = pkgs.callPackage ./nix/packages/fc-queue-runner.nix {
inherit craneLib commonArgs cargoArtifacts;
};
fc-server = pkgs.callPackage ./nix/packages/fc-server.nix {
inherit craneLib commonArgs cargoArtifacts;
};
});
checks = forAllSystems (system: let
pkgs = nixpkgs.legacyPackages.${system};
in {
vm-test = pkgs.callPackage ./nix/vm-test.nix {
nixosModule = self.nixosModules.default;
fc-packages = {
inherit (self.packages.${system}) fc-common fc-evaluator fc-migrate-cli fc-queue-runner fc-server;
};
};
});
devShells = forAllSystems (system: let
pkgs = nixpkgs.legacyPackages.${system};
craneLib = crane.mkLib pkgs;
in {
default = craneLib.devShell {
name = "fc";
inputsFrom = [self.packages.${system}.fc-server];
strictDeps = true;
packages = with pkgs; [
rust-analyzer
postgresql
pkg-config
openssl
];
};
});
};
}