Define custom script for Hydra jobset

For what it’s worth, I don’t think you’re ignorant, I don’t think hydra is the easiest to use/comprehend or setup. The most helpful thing I can do is just give you pointers, since I just went through this:

Hope it helps!

Extra notes:

  1. Flakes is just some import syntax, it’s not necessary here. You can do declarative jobs, etc, all the same, the hydra config is just slightly different
  2. I think the hydra specs part, where the project is actually configured - I think I still use non-flakes for that (hydra-specs.nix → flakes-compat → #hydraSpecs), but I think hydra supports a flake ref here too, I haven’t tested yet.

Extra random notes, apropos of nothing:

  • It would be really cool if hydra could decompose flake references and track them. I’d love to see "all hydra jobs where nixcfg was an input, or “show me the inputs and their rev changes that occurred for this instance of a job”. You could see failures based on inputs pop out, etc.
  • shout out to clever from freenode for the hydralib that I stole to generate the jobspecs
  • shout out to nixpkgs ‘stdlib’ somewhere where I stole the beginnings of the hydra machine line builder and huge shout out to @grahamc for the pointer about configuring a specific identity key for a given machine (which is now incorporated in the machines-txt-builder helper), and some others I’ve forgotten.
1 Like