fix: slim first-party plugin check

- drop full home-manager evaluation in check
- add minimal stub options for module eval
- ensure assertions force plugin resolution

Tests: nix build .#checks.aarch64-darwin.first-party-plugins --accept-flake-config
This commit is contained in:
DJTBOT 2026-01-30 22:23:47 +01:00
parent 83274666b6
commit 0207bb1aad
2 changed files with 50 additions and 9 deletions

View File

@ -48,9 +48,7 @@
checks = {
gateway = packageSetStable.openclaw-gateway;
first-party-plugins = pkgs.callPackage ./nix/checks/openclaw-first-party-plugins.nix {
home-manager = home-manager;
};
first-party-plugins = pkgs.callPackage ./nix/checks/openclaw-first-party-plugins.nix {};
} // (if pkgs.stdenv.hostPlatform.isLinux then {
gateway-tests = pkgs.callPackage ./nix/checks/openclaw-gateway-tests.nix {
sourceInfo = sourceInfoStable;

View File

@ -1,15 +1,57 @@
{ lib, pkgs, home-manager }:
{ lib, pkgs }:
let
eval = home-manager.lib.homeManagerConfiguration {
pkgs = pkgs;
stubModule = { lib, ... }: {
options = {
assertions = lib.mkOption {
type = lib.types.listOf lib.types.attrs;
default = [];
};
home.homeDirectory = lib.mkOption {
type = lib.types.str;
default = "/tmp";
};
home.packages = lib.mkOption {
type = lib.types.listOf lib.types.anything;
default = [];
};
home.file = lib.mkOption {
type = lib.types.attrs;
default = {};
};
home.activation = lib.mkOption {
type = lib.types.attrs;
default = {};
};
launchd.agents = lib.mkOption {
type = lib.types.attrs;
default = {};
};
systemd.user.services = lib.mkOption {
type = lib.types.attrs;
default = {};
};
programs.git.enable = lib.mkOption {
type = lib.types.bool;
default = false;
};
};
};
eval = lib.evalModules {
modules = [
stubModule
../modules/home-manager/openclaw.nix
({ lib, options, ... }: {
config = {
home.homeDirectory = "/tmp";
home.username = "openclaw";
home.stateVersion = "24.11";
programs.git.enable = false;
programs.openclaw = {
enable = true;
@ -21,8 +63,9 @@ let
};
})
];
specialArgs = { inherit pkgs; };
};
evalKey = builtins.deepSeq eval.config.home.packages "ok";
evalKey = builtins.deepSeq eval.config.assertions "ok";
in
pkgs.stdenvNoCC.mkDerivation {
name = "openclaw-first-party-plugins-${evalKey}";