[Nix-dev] Hydra Building PRs
graham at grahamc.com
Sat Jan 28 14:20:48 CET 2017
-----BEGIN PGP SIGNED MESSAGE-----
A couple weeks ago I created https://prs.nix.gsc.io/, a Hydra server
which builds every PR. Every PR will exist at
- a web-hook, which means:
- the moment a PR is created, the jobset is created on this hydra
- every time a PR is updated, the jobset is triggered
- every time there is a commit to master, the master jobset is
- I haven't published the public key to the binary cache, because that
would be very expensive for me to pay for. I am personally paying for
the binary cache storage. Please don't use the binary cache results.
The entire system is open source, publicly available at
The build infrastructure is _very_ generously donated by Packet.net, who
lease dedicated bare metal servers by the hour. Right now we have about
250 cores across 30 servers.
This is still a trial run, though, so the number of systems we get can
and will change.
In exchange for this hardware, I've been working to add NixOS support to
their platform. I'm also wanting to make NixOps have built-in support
for deploying to their hardware.
Packet.net is also one of the only hosting companies I know of which
rents Cavium ThunderX ARMv8s, and they're very interested in our
supporting this architecture. Soon, with the help of Dezgeg,
prs.nix.gsc.io will also building PRs against ARMv8.
After that works, I've spoken with Rob, and it sounds like
hydra.nixos.org will gain the ability to run ARMv8 builds, too.
FUTURE (LONGER TERM)
Ideally, I think everyone would like this to become part of
hydra.nixos.org, Eelco included.
The current state of the system has a couple of patches to Hydra, plus a
PHP webserver calling CLI utilities to create and trigger jobsets.
Having this integrated with hydra properly would be way more ideal.
Interpreting the results is a bit of a open question. Sometimes a PR
will cause unrelated packages to start passing or failing, which is very
mysterious. This seems less bad than Travis (which fails with any PR
bigger than a light breeze...) but will still be confusing for people
who aren't deeply familiar with Hydra.
Other interesting things we may want to implement is setting build
statuses on GitHub.com, or a bot that posts comments.
I would be very, very happy if people contributed and improved the
-----BEGIN PGP SIGNATURE-----
-----END PGP SIGNATURE-----
More information about the nix-dev