-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathflake.nix
More file actions
55 lines (53 loc) · 1.87 KB
/
Copy pathflake.nix
File metadata and controls
55 lines (53 loc) · 1.87 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
{
description = "SolRL reproducible AWS Nitro worker EIF";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/d3cf0dc441e013241cbf342120c304e90c9e58a6";
nitro-util.url = "github:monzo/aws-nitro-util/96f3bb204536dce32882a7e4affd6e8cea828b48";
oyster.url = "github:marlinprotocol/oyster-monorepo/f60874a27f56eee2974cf0099ff80e9627c8f1dd";
};
outputs = {
self,
nixpkgs,
nitro-util,
oyster,
}: let
system = "x86_64-linux";
pkgs = nixpkgs.legacyPackages.${system};
nitro = nitro-util.lib.${system};
oysterPkgs = oyster.packages.${system}.gnu;
worker = pkgs.pkgsStatic.rustPlatform.buildRustPackage {
pname = "solrl-nitro-worker";
version = "0.1.0";
src = ./crates/solrl-nitro-worker;
cargoLock.lockFile = ./crates/solrl-nitro-worker/Cargo.lock;
doCheck = false;
};
app = pkgs.runCommand "solrl-nitro-worker-root" {} ''
install -D -m 0555 ${worker}/bin/solrl-nitro-worker $out/app/solrl-nitro-worker
'';
initPerms = pkgs.runCommand "solrl-nitro-init" {} ''
cp ${oysterPkgs.kernels.vanilla.init} $out
chmod +x $out
'';
in {
packages.${system} = {
solrl-nitro-worker = worker;
solrl-nitro-worker-root = app;
solrl-nitro-kernel-bundle = oysterPkgs.kernels.vanilla.default;
solrl-nitro-init = initPerms;
solrl-nitro-worker-eif = nitro.buildEif {
name = "solrl-nitro-worker";
arch = "x86_64";
init = initPerms;
kernel = oysterPkgs.kernels.vanilla.kernel;
kernelConfig = oysterPkgs.kernels.vanilla.kernelConfig;
nsmKo = oysterPkgs.kernels.vanilla.nsmKo;
cmdline = builtins.readFile nitro.blobs.x86_64.cmdLine;
entrypoint = "/app/solrl-nitro-worker";
env = "SOLRL_VSOCK_PORT=5005";
copyToRoot = app;
};
default = self.packages.${system}.solrl-nitro-worker-eif;
};
};
}