nix-community.nixvim/flake/ci.nix

46 lines
983 B
Nix
Raw Normal View History

{ lib, config, ... }:
let
inherit (lib)
mapAttrs
types
;
in
{
perSystem = {
# per-system CI options
options.ci = {
buildbot = lib.mkOption {
type = types.lazyAttrsOf types.raw;
default = { };
description = ''
A set of tests for [buildbot] to run.
[buildbot]: https://buildbot.nix-community.org
'';
};
};
};
flake = {
# top-level CI option
#
# NOTE:
# This must be an actual option, NOT a set of options.
# Otherwise, flake partitions will not be lazy.
options.ci = lib.mkOption {
type = types.lazyAttrsOf (types.lazyAttrsOf types.raw);
default = { };
description = ''
Outputs related to CI.
Usually defined via the `perSystem.ci` options.
'';
};
# Transpose per-system definitions to the top-level
config.ci = {
buildbot = mapAttrs (_: sysCfg: sysCfg.ci.buildbot) config.allSystems;
};
};
}