Distributed builds / multi-node
- Dominant language
- Haskell
- Stars
- 19
- Forks
- 7
- PR merge metrics
- No merged PRs in 30d
Description
Allow building on more than 1 machine.
We could use
1. Nix store distributed builds, or
2. `om ci run --on`, or
3. Plain `ssh ...`
for this.
## Braindump
(3) is probably more suitable, because we can run all steps including `attic push` (#29) when the build happens on remote machine, but then that would require those machines to have deps (om, attic, cachix, git, etc.) installed, ideally at pinned versions. So, (2) is probably the way to go -- it can also happen a step granular level (only om stage is done remotely), but then that would unnecessarily download files locally. So perhaps we should re-evaluate (3) while tackling the dependency issue?
### (3) Remote deps
`om`, `attic`, `git`, etc. could be setup by copying their derivations (including pinned nixpkgs). Could just copy the `vira` flake, and then use a devShell from it containing these tools in PATH.
Then we need a concept of workspace dir for remote nodes too. Umm.
## Tasks
- [x] https://github.com/juspay/vira/pull/218
- [x] https://github.com/juspay/vira/pull/228
- [x] #285
- [ ] Replace nix-native remote builder with explicit remote building (over ssh; à la `om ci run --on`)
- [ ] ...
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.