Skip to content

Conversation

edolstra
Copy link
Member

@edolstra edolstra commented Apr 13, 2022

This removes the duplicate implementation of the nix-store --serve client in buildRemote(). Instead we now use the Store API directly. To be able to support build cancellation, the actual build is performed by a helper process (hydra-build-step), which can be killed by hydra-queue-runner if the corresponding step is cancelled.

To do:

  • Actually support build step cancellation.
  • Set step statuses like ssConnecting.
  • Rip out nar-extractor. Since hydra-build-step is a separate process, this doesn't work anymore. Instead hydra-build-step should populate the local NAR cache.
  • Get rid of Machine duplication between Hydra and libstore.
  • Get rid of duplication between RemoteResult and BuildResult.

Rather than re-implementing the legacy SSH store protocol, we now use
Store directly. To be able to support build cancellation, the actual
build is performed by a helper process (hydra-build-step), which can
be killed by hydra-queue-runner if the corresponding step is
cancelled.
@Ericson2314
Copy link
Member

Ericson2314 commented Oct 25, 2022

use-store-api...obsidiansystems:hydra:use-store-api Fixed conflicts (rather trivially) here.

Pushed

@Ericson2314
Copy link
Member

The conflicts between the build remote split PR (now merged into master) and this are fixed.

As expected, this PR obviates most of the split out functions by instead moving functionality to the new executable, so the split out functions are mostly just deleted and the diff is fairly small.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants