49 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
		
		
			
		
	
	
			49 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
|   | import ./make-test-python.nix ( | ||
|  |   { pkgs, lib, ... }: | ||
|  |   { | ||
|  |     name = "nar-serve"; | ||
|  |     meta.maintainers = [ lib.maintainers.rizary ]; | ||
|  |     nodes = | ||
|  |       { | ||
|  |         server = { pkgs, ... }: { | ||
|  |           services.nginx = { | ||
|  |             enable = true; | ||
|  |             virtualHosts.default.root = "/var/www"; | ||
|  |           }; | ||
|  |           services.nar-serve = { | ||
|  |             enable = true; | ||
|  |             # Connect to the localhost nginx instead of the default | ||
|  |             # https://cache.nixos.org | ||
|  |             cacheURL = "http://localhost/"; | ||
|  |           }; | ||
|  |           environment.systemPackages = [ | ||
|  |             pkgs.hello | ||
|  |             pkgs.curl | ||
|  |           ]; | ||
|  | 
 | ||
|  |           networking.firewall.allowedTCPPorts = [ 8383 ]; | ||
|  | 
 | ||
|  |           # virtualisation.diskSize = 2 * 1024; | ||
|  |         }; | ||
|  |       }; | ||
|  |     testScript = ''
 | ||
|  |       start_all() | ||
|  | 
 | ||
|  |       # Create a fake cache with Nginx service the static files | ||
|  |       server.succeed( | ||
|  |           "nix copy --to file:///var/www ${pkgs.hello}" | ||
|  |       ) | ||
|  |       server.wait_for_unit("nginx.service") | ||
|  |       server.wait_for_open_port(80) | ||
|  | 
 | ||
|  |       # Check that nar-serve can return the content of the derivation | ||
|  |       drvName = os.path.basename("${pkgs.hello}") | ||
|  |       drvHash = drvName.split("-")[0] | ||
|  |       server.wait_for_unit("nar-serve.service") | ||
|  |       server.succeed( | ||
|  |           "curl -o hello -f http://localhost:8383/nix/store/{}/bin/hello".format(drvHash) | ||
|  |       ) | ||
|  |     '';
 | ||
|  |   } | ||
|  | ) |