Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Interactive testing on Hydra build slaves #478

Closed
lukego opened this issue May 15, 2017 · 4 comments
Closed

Interactive testing on Hydra build slaves #478

lukego opened this issue May 15, 2017 · 4 comments
Labels

Comments

@lukego
Copy link

lukego commented May 15, 2017

I have a Hydra cluster with many build slaves that each have interesting "features" (hardware.) I would like to be able to interactively run tests on these machines, in addition to the Hydra tests.

For example I would like to be able to run nix-build on my laptop and have it execute the test on one of the build slaves that can satisfy the required features. Ideally an interactive test would be time limited (e.g. timeout 60 nix-build ...) and would preempt any automatic build from Hydra (but in such a way that it will be automatically retried later.) The idea is that most of the time machines will be running automatically scheduled tests but occasionally this will be interrupted for an interactive test.

How realistic is this dream? :-)

@domenkozar
Copy link
Member

Missed this one :) @lukego in what sense do you mean interactive here?

@lukego
Copy link
Author

lukego commented Aug 11, 2017

By "interactively" I suppose that I mean "synchronously and with low latency."

So I would write nix-build-on-hydra foo.nix to submit a job for Hydra to run now and the command would wait while it builds and then finally import the results into my local nix store.

This differs from normal distributed nix via the build hook because Hydra is the one keeping track of what build slaves exist, what are their supported features, how they should prioritize work, etc. also in that the derivations will be built completely with only the final result being imported into my local store.

@domenkozar
Copy link
Member

Hercules will support that in hercules-ci/legacy-old-hercules#12

For Hydra, someone would need to code together using API:

  • create a new one-off jobset
  • bump it to the beginning of the queue
  • poll on results
  • print status report as it goes

@lukego
Copy link
Author

lukego commented Aug 11, 2017

Thanks for the feedback. Just happy to have this idea floating around :).

@lukego lukego closed this as completed Aug 11, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants