Describing the whole system is easy with the nixosConfigurations
output.
Getting them built by hydra is similarily easy:
checks.x86_64-linux = builtins.mapAttrs (_: hostConfig: hostConfig.config.system.build.toplevel) self.nixosConfigurations;
It is the other stuff I haven’t really managed to do yet…
Like regularly polling the inputs and updating them on the flake, updating the lockfile, pushing to a branch once built… automatic merge from a “dev” branch to master
/main
once the builds succeeds and pushing back to GitHub, etc…
And of course, using it as a binary cache