|  |  | @ -1,25 +1,37 @@ | 
			
		
	
		
		
			
				
					
					|  |  |  | def phone(String ip, String step_label, String cmd) { |  |  |  | def phone(String ip, String step_label, String cmd) { | 
			
		
	
		
		
			
				
					
					|  |  |  |   def ci_env = "CI=1 TEST_DIR=${env.TEST_DIR} GIT_BRANCH=${env.GIT_BRANCH} GIT_COMMIT=${env.GIT_COMMIT}" |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |   withCredentials([file(credentialsId: 'id_rsa_public', variable: 'key_file')]) { |  |  |  |   withCredentials([file(credentialsId: 'id_rsa_public', variable: 'key_file')]) { | 
			
		
	
		
		
			
				
					
					|  |  |  |     sh label: step_label, |  |  |  |     def ssh_cmd = """ | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |         script: """ |  |  |  | ssh -tt -o StrictHostKeyChecking=no -i ${key_file} -p 8022 'comma@${ip}' /usr/bin/bash <<'EOF' | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  |                 ssh -tt -o StrictHostKeyChecking=no -i ${key_file} -p 8022 root@${ip} '${ci_env} /usr/bin/bash -le' <<'EOF' |  |  |  | 
 | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | echo \$\$ > /dev/cpuset/app/tasks || true |  |  |  | set -e | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | echo \$PPID > /dev/cpuset/app/tasks || true |  |  |  | 
 | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | mkdir -p /dev/shm |  |  |  | export CI=1 | 
			
				
				
			
		
	
		
		
			
				
					
					|  |  |  | chmod 777 /dev/shm |  |  |  | export TEST_DIR=${env.TEST_DIR} | 
			
				
				
			
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | export GIT_BRANCH=${env.GIT_BRANCH} | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | export GIT_COMMIT=${env.GIT_COMMIT} | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | source ~/.bash_profile | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | if [ -f /EON ]; then | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |   echo \$\$ > /dev/cpuset/app/tasks || true | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |   echo \$PPID > /dev/cpuset/app/tasks || true | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |   mkdir -p /dev/shm | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |   chmod 777 /dev/shm | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | fi | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  | cd ${env.TEST_DIR} || true |  |  |  | cd ${env.TEST_DIR} || true | 
			
		
	
		
		
			
				
					
					|  |  |  | ${cmd} |  |  |  | ${cmd} | 
			
		
	
		
		
			
				
					
					|  |  |  | exit 0 |  |  |  | exit 0 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  | EOF""" |  |  |  | EOF""" | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     sh script: ssh_cmd, label: step_label | 
			
		
	
		
		
			
				
					
					|  |  |  |   } |  |  |  |   } | 
			
		
	
		
		
			
				
					
					|  |  |  | } |  |  |  | } | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  | 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: 60, unit: 'MINUTES') { |  |  |  |     timeout(time: 60, unit: 'MINUTES') { | 
			
		
	
		
		
			
				
					
					|  |  |  |       phone(device_ip, "kill old processes", "pkill -f comma || true") |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |       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]) | 
			
		
	
	
		
		
			
				
					|  |  | @ -40,7 +52,7 @@ pipeline { | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |   stages { |  |  |  |   stages { | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |     stage('Release Build') { |  |  |  |     stage('Build release2') { | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |       agent { |  |  |  |       agent { | 
			
		
	
		
		
			
				
					
					|  |  |  |         docker { |  |  |  |         docker { | 
			
		
	
		
		
			
				
					
					|  |  |  |           image 'python:3.7.3' |  |  |  |           image 'python:3.7.3' | 
			
		
	
	
		
		
			
				
					|  |  | @ -104,7 +116,6 @@ pipeline { | 
			
		
	
		
		
			
				
					
					|  |  |  |           stages { |  |  |  |           stages { | 
			
		
	
		
		
			
				
					
					|  |  |  |             stage('parallel tests') { |  |  |  |             stage('parallel tests') { | 
			
		
	
		
		
			
				
					
					|  |  |  |               parallel { |  |  |  |               parallel { | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |                 stage('Devel Build') { |  |  |  |                 stage('Devel Build') { | 
			
		
	
		
		
			
				
					
					|  |  |  |                   environment { |  |  |  |                   environment { | 
			
		
	
		
		
			
				
					
					|  |  |  |                     CI_PUSH = "${env.BRANCH_NAME == 'master' ? 'master-ci' : ' '}" |  |  |  |                     CI_PUSH = "${env.BRANCH_NAME == 'master' ? 'master-ci' : ' '}" | 
			
		
	
	
		
		
			
				
					|  |  | @ -145,6 +156,14 @@ pipeline { | 
			
		
	
		
		
			
				
					
					|  |  |  |                   } |  |  |  |                   } | 
			
		
	
		
		
			
				
					
					|  |  |  |                 } |  |  |  |                 } | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 stage('Tici Build') { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                   steps { | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                     phone_steps("tici", [ | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                       ["build", "SCONS_CACHE=1 scons -j16"], | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                     ]) | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                   } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |                 } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |               } |  |  |  |               } | 
			
		
	
		
		
			
				
					
					|  |  |  |             } |  |  |  |             } | 
			
		
	
		
		
			
				
					
					|  |  |  |           } |  |  |  |           } | 
			
		
	
	
		
		
			
				
					|  |  | @ -161,3 +180,4 @@ pipeline { | 
			
		
	
		
		
			
				
					
					|  |  |  |     } |  |  |  |     } | 
			
		
	
		
		
			
				
					
					|  |  |  |   } |  |  |  |   } | 
			
		
	
		
		
			
				
					
					|  |  |  | } |  |  |  | } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  | 
 | 
			
		
	
	
		
		
			
				
					|  |  | 
 |