      sh script: ssh_cmd, label: step_label
    }
  }
  
  def deviceStage(String stageName, String deviceType, def steps) {
    stage(stageName) {
      if (currentBuild.result != null) {
          return
      }
  
 
</s> remove     def dockerArgs = '--user=root -v /tmp/comma_download_cache:/tmp/comma_download_cache';
 </s> add     def dockerArgs = '--user=root -v /tmp/comma_download_cache:/tmp/comma_download_cache -v /tmp/scons_cache:/tmp/scons_cache'; </s> remove           sh "scons --clean && scons --no-cache --random -j42"

          // car tests
          sh "INTERNAL_SEG_CNT=500 INTERNAL_SEG_LIST=selfdrive/car/tests/test_models_segs.txt FILEREADER_CACHE=1 \
 </s> add           sh label: "test multi-threaded build", script: "scons --no-cache --random -j42"
        }
      },
      'car tests': {
        pcStage("car tests") {
          sh "scons -j30"
          sh label: "test_models.py", script: "INTERNAL_SEG_CNT=250 INTERNAL_SEG_LIST=selfdrive/car/tests/test_models_segs.txt FILEREADER_CACHE=1 \ </s> remove           sh "MAX_EXAMPLES=100 pytest -n42 selfdrive/car/tests/test_car_interfaces.py"
 </s> add           sh label: "test_car_interfaces.py", script: "MAX_EXAMPLES=100 pytest -n42 selfdrive/car/tests/test_car_interfaces.py" </s> remove           device(device_ip, "git checkout", readFile("selfdrive/test/setup_device_ci.sh"),)
 </s> add           device(device_ip, "git checkout", extra + "\n" + readFile("selfdrive/test/setup_device_ci.sh"))
def deviceStage(String stageName, String deviceType, List env, def steps) {
      sh script: ssh_cmd, label: step_label
    }
  }
  
def deviceStage(String stageName, String deviceType, List env, def steps) {
    stage(stageName) {
      if (currentBuild.result != null) {
          return
      }
  
keep keep keep keep replace keep keep keep keep keep
 jenkins speedup (#29869)

* jenkins speedup

* cleanup 
Jenkinsfile