nixlets/flake.nix

98 lines
2.5 KiB
Nix
Raw Normal View History

2024-03-06 10:23:25 +00:00
{
outputs = {
self,
flake-parts,
systems,
...
} @ inputs:
flake-parts.lib.mkFlake {inherit inputs;} {
imports = [
inputs.devenv.flakeModule
2024-03-09 15:32:47 +01:00
inputs.nix-gitlab-ci.flakeModule
2024-03-06 10:23:25 +00:00
];
systems = import systems;
flake = rec {
utils = import ./lib {
inherit (inputs.nixpkgs) lib;
inherit inputs;
};
2024-04-07 13:29:20 +02:00
# █▄░█ █ ▀▄▀ █░░ █▀▀ ▀█▀ █▀
# █░▀█ █ █░█ █▄▄ ██▄ ░█░ ▄█
2024-03-06 10:23:25 +00:00
nixlets = {
# <name> = utils.mkNixlet ./nixlets/<name>;
2024-03-09 14:26:09 +00:00
mosquitto = utils.mkNixlet ./nixlets/mosquitto;
attic = utils.mkNixlet ./nixlets/attic;
postgres = utils.mkNixlet ./nixlets/postgres;
2024-04-07 11:27:30 +00:00
tikv = utils.mkNixlet ./nixlets/tikv;
2024-03-06 10:23:25 +00:00
};
};
perSystem = {
pkgs,
system,
inputs',
...
}: {
2024-03-09 15:32:47 +01:00
imports = [
./ci.nix
];
2024-03-06 10:23:25 +00:00
formatter = pkgs.alejandra;
devenv.shells.default = {
containers = pkgs.lib.mkForce {};
packages = with pkgs; [
kube-linter
];
pre-commit = {
hooks = {
alejandra.enable = true;
};
};
};
# check if every nixlet successfully renders with default values
checks =
builtins.mapAttrs (
name: nixlet:
self.utils.renderNixlet {
inherit system nixlet;
project = name;
values = {};
}
)
self.nixlets;
# allow directly building every nixlet with default values
packages =
builtins.mapAttrs (
name: nixlet:
self.utils.renderNixlet {
inherit system nixlet;
project = name;
values = {};
}
)
self.nixlets;
};
};
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
# flake & devenv related
flake-parts.url = "github:hercules-ci/flake-parts";
systems.url = "github:nix-systems/default-linux";
devenv = {
url = "github:cachix/devenv";
inputs.pre-commit-hooks.follows = "pre-commit-hooks";
};
pre-commit-hooks.url = "github:cachix/pre-commit-hooks.nix";
2024-03-09 15:32:47 +01:00
nix-gitlab-ci.url = "gitlab:TECHNOFAB/nix-gitlab-ci";
2024-03-06 10:23:25 +00:00
kubenix = {
2024-03-20 15:48:21 +01:00
url = "github:TECHNOFAB11/kubenix";
2024-03-06 10:23:25 +00:00
inputs.nixpkgs.follows = "nixpkgs";
};
};
}