Have any of you ever set up a CI runner that effectively delegated to another machine awakened on-demand via Wake-On-LAN?
I think I've got a good pattern to follow using GitLab's libvirt VM instructions. Use a prepare step that would normally start a VM, wait for IP & SSH to instead send the WoL packet… and await IP & SSH.
Machine boots using some kind of ephemeral filesystem deleted on shutdown. The run step just runs whatever via ssh.
Job cleanup schedules shutdown for 10 min later.