The library does not depend on stdenv, that `stdenv` exposes `lib` is an artifact of the ancient origins of nixpkgs.
		
			
				
	
	
		
			49 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			49 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
{ system, ... }:
 | 
						|
{
 | 
						|
  baseConfig = { pkgs, ... }: let
 | 
						|
    trivialJob = pkgs.writeTextDir "trivial.nix" ''
 | 
						|
     { trivial = builtins.derivation {
 | 
						|
         name = "trivial";
 | 
						|
         system = "${system}";
 | 
						|
         builder = "/bin/sh";
 | 
						|
         allowSubstitutes = false;
 | 
						|
         preferLocalBuild = true;
 | 
						|
         args = ["-c" "echo success > $out; exit 0"];
 | 
						|
       };
 | 
						|
     }
 | 
						|
    '';
 | 
						|
 | 
						|
    createTrivialProject = pkgs.stdenv.mkDerivation {
 | 
						|
      name = "create-trivial-project";
 | 
						|
      dontUnpack = true;
 | 
						|
      buildInputs = [ pkgs.makeWrapper ];
 | 
						|
      installPhase = "install -m755 -D ${./create-trivial-project.sh} $out/bin/create-trivial-project.sh";
 | 
						|
      postFixup = ''
 | 
						|
        wrapProgram "$out/bin/create-trivial-project.sh" --prefix PATH ":" ${pkgs.lib.makeBinPath [ pkgs.curl ]} --set EXPR_PATH ${trivialJob}
 | 
						|
      '';
 | 
						|
    };
 | 
						|
  in {
 | 
						|
    virtualisation.memorySize = 2048;
 | 
						|
    time.timeZone = "UTC";
 | 
						|
    environment.systemPackages = [ createTrivialProject pkgs.jq ];
 | 
						|
    services.hydra = {
 | 
						|
      enable = true;
 | 
						|
      # Hydra needs those settings to start up, so we add something not harmfull.
 | 
						|
      hydraURL = "example.com";
 | 
						|
      notificationSender = "example@example.com";
 | 
						|
      extraConfig = ''
 | 
						|
        email_notification = 1
 | 
						|
      '';
 | 
						|
    };
 | 
						|
    services.postfix.enable = true;
 | 
						|
    nix = {
 | 
						|
      distributedBuilds = true;
 | 
						|
      buildMachines = [{
 | 
						|
        hostName = "localhost";
 | 
						|
        systems = [ system ];
 | 
						|
      }];
 | 
						|
      binaryCaches = [];
 | 
						|
    };
 | 
						|
  };
 | 
						|
}
 |