at master 1.5 kB view raw
1{ 2 baseConfig = 3 { pkgs, ... }: 4 let 5 trivialJob = pkgs.writeTextDir "trivial.nix" '' 6 { trivial = builtins.derivation { 7 name = "trivial"; 8 system = "${pkgs.stdenv.hostPlatform.system}"; 9 builder = "/bin/sh"; 10 allowSubstitutes = false; 11 preferLocalBuild = true; 12 args = ["-c" "echo success > $out; exit 0"]; 13 }; 14 } 15 ''; 16 17 createTrivialProject = pkgs.stdenv.mkDerivation { 18 name = "create-trivial-project"; 19 dontUnpack = true; 20 nativeBuildInputs = [ pkgs.makeWrapper ]; 21 installPhase = "install -m755 -D ${./create-trivial-project.sh} $out/bin/create-trivial-project.sh"; 22 postFixup = '' 23 wrapProgram "$out/bin/create-trivial-project.sh" --prefix PATH ":" ${ 24 pkgs.lib.makeBinPath [ pkgs.curl ] 25 } --set EXPR_PATH ${trivialJob} 26 ''; 27 }; 28 in 29 { 30 virtualisation.memorySize = 2048; 31 time.timeZone = "UTC"; 32 environment.systemPackages = [ 33 createTrivialProject 34 pkgs.jq 35 ]; 36 services.hydra = { 37 enable = true; 38 # Hydra needs those settings to start up, so we add something not harmfull. 39 hydraURL = "example.com"; 40 notificationSender = "example@example.com"; 41 extraConfig = '' 42 email_notification = 1 43 ''; 44 }; 45 services.postfix.enable = true; 46 nix.settings.substituters = [ ]; 47 }; 48}