nix: VM tests; demo VM; cleanup
Signed-off-by: NotAShelf <raf@notashelf.dev> Change-Id: If0fe78ab43436c7e85fa357483bb4c8c6a6a6964
This commit is contained in:
parent
0782d891f1
commit
389bf71d82
10 changed files with 2882 additions and 63 deletions
154
flake.nix
154
flake.nix
|
|
@ -1,77 +1,107 @@
|
|||
{
|
||||
inputs = {
|
||||
nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
|
||||
nixpkgs.url = "github:NixOS/nixpkgs?ref=nixpkgs-unstable";
|
||||
crane.url = "github:ipetkov/crane";
|
||||
};
|
||||
|
||||
outputs = {
|
||||
nixpkgs,
|
||||
crane,
|
||||
self,
|
||||
...
|
||||
}: 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";
|
||||
});
|
||||
inherit (nixpkgs) lib;
|
||||
forAllSystems = lib.genAttrs ["x86_64-linux" "aarch64-linux"];
|
||||
in {
|
||||
packages.${system} = {
|
||||
inherit server evaluator queue-runner common migrate-cli;
|
||||
# NixOS module for feel-ci
|
||||
nixosModules = {
|
||||
fc-ci = ./nix/modules/nixos.nix;
|
||||
default = self.nixosModules.fc-ci;
|
||||
};
|
||||
|
||||
devShells.${system}.default = craneLib.devShell {
|
||||
name = "fc";
|
||||
inputsFrom = [server];
|
||||
packages = with pkgs; [
|
||||
rust-analyzer
|
||||
postgresql
|
||||
pkg-config
|
||||
openssl
|
||||
];
|
||||
};
|
||||
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
|
||||
];
|
||||
};
|
||||
});
|
||||
};
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue