at master 1.1 kB view raw
1{ lib, pkgs, ... }: 2{ 3 name = "livebook-service"; 4 5 nodes = { 6 machine = 7 { config, pkgs, ... }: 8 { 9 imports = [ 10 ./common/user-account.nix 11 ]; 12 13 services.livebook = { 14 enableUserService = true; 15 environment = { 16 LIVEBOOK_PORT = 20123; 17 }; 18 environmentFile = pkgs.writeText "livebook.env" '' 19 LIVEBOOK_PASSWORD = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" 20 ''; 21 }; 22 }; 23 }; 24 25 testScript = 26 { nodes, ... }: 27 let 28 user = nodes.machine.users.users.alice; 29 sudo = lib.concatStringsSep " " [ 30 "XDG_RUNTIME_DIR=/run/user/${toString user.uid}" 31 "sudo" 32 "--preserve-env=XDG_RUNTIME_DIR" 33 "-u" 34 "alice" 35 ]; 36 in 37 '' 38 machine.wait_for_unit("multi-user.target") 39 40 machine.succeed("loginctl enable-linger alice") 41 machine.wait_until_succeeds("${sudo} systemctl --user is-active livebook.service") 42 machine.wait_for_open_port(20123, timeout=10) 43 44 machine.succeed("curl -L localhost:20123 | grep 'Type password'") 45 ''; 46}