about summary refs log tree commit diff
path: root/modules/user/aszlig/programs/taalo-build/default.nix
Commit message (Collapse)AuthorAgeFilesLines
* taalo-build: Rewrite as wrapper and move to pkgsaszlig2017-11-121-93/+0
| | | | | | | | | | | | | | | | | | | | We no longer use the legacy SSH store protocol for taalo but the new ssh-ng protocol, which makes the implementation of taalo-build a LOT less clunky. It also didn't make sense to have this as a NixOS module when we after all just emit a static store path without any stuff depending on configuration options. The new implementation basically just wraps nix-build and nix-store -r along with the right NIX_REMOTE variable. With Nix 1.2 this can also be done with the new "nix build" command using the --store option, but unfortunately "nix build" doesn't yet have the same functionality as nix-build. Signed-off-by: aszlig <aszlig@nix.build> Cc: @Profpatsch, @bendlas
* taalo-build: Use Nix 1.11 for the backendaszlig2017-04-231-1/+10
| | | | | | | | | | | | | | | | | | Nix 1.12 already got rid of most of the Perl stuff so the Perl script backing taalo-build doesn't work anymore because Nix/CopyClosure.pm is no longer available. One way to fix this properly is to part the backend to C++ and use the new ssh-ng store backend. This would also have the advantage that we don't need to hardcode protocol internals here anymore. Unfortunately, Nix 1.12 isn't stable yet and we would break Nix 1.11 if we use the new store API. So that's why I'm pinning the backend to use Nix 1.11 instead and leave that ugly Perl script until Nix 1.2 is stable. Signed-off-by: aszlig <aszlig@redmoonstudios.org>
* taalo-build: Set pipefail for nix-instantiateaszlig2016-07-041-0/+1
| | | | | | | | If the nix-instantiate step in taalo-build should fail, we want it to fail altogether rather than just going on and bailing out very late (with an exit status of 0) when the readlink call fails. Signed-off-by: aszlig <aszlig@redmoonstudios.org>
* taalo-build: Fix picking up derivation pathsaszlig2016-06-051-2/+2
| | | | | | | | | | | | | Regression introduced by fba5c2469bd5e95857c4ffd9db3dd0529f2485f3. The derivation paths returned by nix-instantiate are usually valid store paths, except when used with --add-root. In case of the latter, we get the root symlink back, so we need to do an additional readlink on it. We also now pass -t to mktemp so that $TMPDIR or /tmp is used instead of the current working directory. Signed-off-by: aszlig <aszlig@redmoonstudios.org>
* programs/taalo-build: Add link to derivation fileaszlig2016-06-041-2/+10
| | | | | | | This is needed to ensure that the .drv file doesn't get garbage collected while we're transferring it to taalo. Signed-off-by: aszlig <aszlig@redmoonstudios.org>
* programs/taalo-build: Handle multiple outputsaszlig2016-06-041-1/+1
| | | | | | | We need to split off the !output from the derivation name returned by nix-instantiate, because we can't realize such a path. Signed-off-by: aszlig <aszlig@redmoonstudios.org>
* programs/taalo-build: Split into realize and buildaszlig2016-05-291-48/+58
| | | | | | | | | | | | | | | With just taalo-build we can't realize plain .drv files, so let's use the Perl part to just realize the derivations given by the command line and provide two shell script wrappers on top of it: * taalo-build: Similar to nix-build * taalo-realize: Similar to nix-store -r Having a command like taalo-realize is very useful if evaluation is done on a different machine and the closure is just copied over to the local machine before being sent to taalo. Signed-off-by: aszlig <aszlig@redmoonstudios.org>
* programs/taalo-build: Directly connect to taaloaszlig2016-01-191-3/+3
| | | | | | | | As I'm moving away the deployment from mmrnmhrm, it's not a very good idea to rely on the deployment machine being up, which also makes it two machines that need to be up in order to build from tishtushi. Signed-off-by: aszlig <aszlig@redmoonstudios.org>
* aszlig/programs: Add a new "taalo-build" program.aszlig2015-12-141-0/+65
This is primarily for whenever I'm on the road with varying degrees of internet connectivity. What it essentially does is ssh to mmrnmhrm, then ssh to taalo and then run nix-store --serve --write on it. Taalo is the Hydra master of https://headcounter.org/hydra/ and it has remote builds enabled. The script essentially only builds on the remote host but doesn't fetch the builds. The latter can be done if the Hydra is added as a build cache to the local system, which in case of vuizvui is by default. Signed-off-by: aszlig <aszlig@redmoonstudios.org>