You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							89 lines
						
					
					
						
							2.5 KiB
						
					
					
				
			
		
		
	
	
							89 lines
						
					
					
						
							2.5 KiB
						
					
					
				pipeline {
 | 
						|
  agent {
 | 
						|
    docker {
 | 
						|
      image 'python:3.7.3'
 | 
						|
      args '--user=root'
 | 
						|
    }
 | 
						|
  }
 | 
						|
  environment {
 | 
						|
    COMMA_JWT = credentials('athena-test-jwt')
 | 
						|
  }
 | 
						|
 | 
						|
  stages {
 | 
						|
 | 
						|
    stage('Release Build') {
 | 
						|
      when {
 | 
						|
        branch 'devel-staging'
 | 
						|
      }
 | 
						|
      steps {
 | 
						|
        lock(resource: "", label: 'eon-build', inversePrecedence: true, variable: 'eon_ip', quantity: 1){
 | 
						|
          timeout(time: 60, unit: 'MINUTES') {
 | 
						|
            dir(path: 'selfdrive/test') {
 | 
						|
              sh 'pip install paramiko'
 | 
						|
              sh 'python phone_ci.py "cd release && PUSH=1 ./build_release2.sh"'
 | 
						|
            }
 | 
						|
          }
 | 
						|
        }
 | 
						|
      }
 | 
						|
    }
 | 
						|
 | 
						|
    stage('On-device Tests') {
 | 
						|
      when {
 | 
						|
        not {
 | 
						|
          anyOf {
 | 
						|
            branch 'master-ci'; branch 'devel'; branch 'devel-staging'; branch 'release2'; branch 'release2-staging'; branch 'dashcam'; branch 'dashcam-staging'
 | 
						|
          }
 | 
						|
        }
 | 
						|
      }
 | 
						|
 | 
						|
      parallel {
 | 
						|
 | 
						|
        stage('Build') {
 | 
						|
          environment {
 | 
						|
            CI_PUSH = "${env.BRANCH_NAME == 'master' ? 'master-ci' : ''}"
 | 
						|
          }
 | 
						|
 | 
						|
          steps {
 | 
						|
            lock(resource: "", label: 'eon', inversePrecedence: true, variable: 'eon_ip', quantity: 1){
 | 
						|
              timeout(time: 60, unit: 'MINUTES') {
 | 
						|
                dir(path: 'selfdrive/test') {
 | 
						|
                  sh 'pip install paramiko'
 | 
						|
                  sh 'python phone_ci.py "cd release && ./build_devel.sh"'
 | 
						|
                }
 | 
						|
              }
 | 
						|
            }
 | 
						|
          }
 | 
						|
        }
 | 
						|
 | 
						|
        stage('Replay Tests') {
 | 
						|
          steps {
 | 
						|
            lock(resource: "", label: 'eon2', inversePrecedence: true, variable: 'eon_ip', quantity: 1){
 | 
						|
              timeout(time: 60, unit: 'MINUTES') {
 | 
						|
                dir(path: 'selfdrive/test') {
 | 
						|
                  sh 'pip install paramiko'
 | 
						|
                  sh 'python phone_ci.py "cd selfdrive/test/process_replay && ./camera_replay.py"'
 | 
						|
                }
 | 
						|
              }
 | 
						|
            }
 | 
						|
          }
 | 
						|
        }
 | 
						|
 | 
						|
        stage('HW Tests') {
 | 
						|
          steps {
 | 
						|
            lock(resource: "", label: 'eon', inversePrecedence: true, variable: 'eon_ip', quantity: 1){
 | 
						|
              timeout(time: 60, unit: 'MINUTES') {
 | 
						|
                dir(path: 'selfdrive/test') {
 | 
						|
                  sh 'pip install paramiko'
 | 
						|
                  sh 'python phone_ci.py "SCONS_CACHE=1 scons -j3 cereal/ && \
 | 
						|
                                          nosetests -s selfdrive/test/test_sounds.py && \
 | 
						|
                                          nosetests -s selfdrive/boardd/tests/test_boardd_loopback.py"'
 | 
						|
                }
 | 
						|
              }
 | 
						|
            }
 | 
						|
          }
 | 
						|
        }
 | 
						|
 | 
						|
      }
 | 
						|
    }
 | 
						|
  }
 | 
						|
}
 | 
						|
 |