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