|  |  | @ -37,7 +37,7 @@ EOF""" | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  | def phone_steps(String device_type, steps) { |  |  |  | def phone_steps(String device_type, steps) { | 
			
		
	
		
		
			
				
					
					|  |  |  |   lock(resource: "", label: device_type, inversePrecedence: true, variable: 'device_ip', quantity: 1) { |  |  |  |   lock(resource: "", label: device_type, inversePrecedence: true, variable: 'device_ip', quantity: 1) { | 
			
		
	
		
		
			
				
					
					|  |  |  |     timeout(time: 150, unit: 'MINUTES') { |  |  |  |     timeout(time: 60, unit: 'MINUTES') { | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |       phone(device_ip, "git checkout", readFile("selfdrive/test/setup_device_ci.sh"),) |  |  |  |       phone(device_ip, "git checkout", readFile("selfdrive/test/setup_device_ci.sh"),) | 
			
		
	
		
		
			
				
					
					|  |  |  |       steps.each { item -> |  |  |  |       steps.each { item -> | 
			
		
	
		
		
			
				
					
					|  |  |  |         phone(device_ip, item[0], item[1]) |  |  |  |         phone(device_ip, item[0], item[1]) | 
			
		
	
	
		
		
			
				
					|  |  | @ -53,7 +53,7 @@ pipeline { | 
			
		
	
		
		
			
				
					
					|  |  |  |     SOURCE_DIR = "/data/openpilot_source/" |  |  |  |     SOURCE_DIR = "/data/openpilot_source/" | 
			
		
	
		
		
			
				
					
					|  |  |  |   } |  |  |  |   } | 
			
		
	
		
		
			
				
					
					|  |  |  |   options { |  |  |  |   options { | 
			
		
	
		
		
			
				
					
					|  |  |  |       timeout(time: 3, unit: 'HOURS') |  |  |  |       timeout(time: 4, unit: 'HOURS') | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |   } |  |  |  |   } | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |   stages { |  |  |  |   stages { | 
			
		
	
	
		
		
			
				
					|  |  | 
 |