mirror of
https://gitlab.com/TECHNOFAB/nixlets.git
synced 2025-12-12 01:50:05 +01:00
allows users to use the nixlet dir as flake input, this way not all of them have to be downloaded individually from GitLab's package registry
107 lines
2.6 KiB
Nix
107 lines
2.6 KiB
Nix
{
|
|
outputs = {
|
|
self,
|
|
nixpkgs,
|
|
flake-parts,
|
|
systems,
|
|
...
|
|
} @ inputs: let
|
|
nixlet-lib = import ./lib {
|
|
inherit (nixpkgs) lib;
|
|
inherit (inputs) kubenix;
|
|
};
|
|
in
|
|
flake-parts.lib.mkFlake {inherit inputs;} {
|
|
imports = [
|
|
inputs.devenv.flakeModule
|
|
inputs.nix-gitlab-ci.flakeModule
|
|
inputs.treefmt-nix.flakeModule
|
|
];
|
|
systems = import systems;
|
|
flake = {
|
|
nixlets = import ./nixlets {inherit nixlet-lib;};
|
|
};
|
|
perSystem = {
|
|
lib,
|
|
pkgs,
|
|
config,
|
|
system,
|
|
...
|
|
}: {
|
|
imports = [
|
|
./ci.nix
|
|
];
|
|
treefmt = {
|
|
projectRootFile = "flake.nix";
|
|
programs = {
|
|
alejandra.enable = true;
|
|
mdformat.enable = true;
|
|
};
|
|
};
|
|
devenv.shells.default = {
|
|
containers = lib.mkForce {};
|
|
packages = with pkgs; [
|
|
kube-linter
|
|
];
|
|
|
|
pre-commit.hooks.treefmt = {
|
|
enable = true;
|
|
packageOverrides.treefmt = config.treefmt.build.wrapper;
|
|
};
|
|
};
|
|
|
|
# check if every nixlet successfully renders with default values
|
|
checks =
|
|
builtins.mapAttrs (
|
|
_: nixlet:
|
|
nixlet.render {
|
|
inherit system;
|
|
}
|
|
)
|
|
self.nixlets;
|
|
|
|
# allow directly building every nixlet with default values
|
|
packages =
|
|
builtins.mapAttrs (
|
|
_: nixlet:
|
|
nixlet.render {
|
|
inherit system;
|
|
}
|
|
)
|
|
self.nixlets;
|
|
|
|
apps.upload = {
|
|
type = "app";
|
|
program = pkgs.callPackage nixlet-lib.uploadNixletsToGitlab {
|
|
projectId = "55602785";
|
|
nixlets = lib.attrValues 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.git-hooks.follows = "git-hooks";
|
|
};
|
|
git-hooks.url = "github:cachix/git-hooks.nix";
|
|
treefmt-nix.url = "github:numtide/treefmt-nix";
|
|
nix-gitlab-ci.url = "gitlab:TECHNOFAB/nix-gitlab-ci?dir=lib";
|
|
|
|
kubenix = {
|
|
url = "github:TECHNOFAB11/kubenix";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
};
|
|
|
|
nixConfig = {
|
|
extra-trusted-public-keys = "devenv.cachix.org-1:w1cLUi8dv3hnoSPGAuibQv+f9TZLr6cv/Hm9XgU50cw=";
|
|
extra-substituters = "https://devenv.cachix.org";
|
|
};
|
|
}
|