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}