      }
  
      docker.image('ghcr.io/commaai/alpine-ssh').inside('--user=root') {
        lock(resource: "", label: deviceType, inversePrecedence: true, variable: 'device_ip', quantity: 1) {
          timeout(time: 20, unit: 'MINUTES') {
            device(device_ip, "git checkout", extra + "\n" + readFile("selfdrive/test/setup_device_ci.sh"))
 
</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")) </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 def deviceStage(String stageName, String deviceType, def steps) {
 </s> add def deviceStage(String stageName, String deviceType, List env, def steps) { </s> remove         deviceStage("LSM + MMC", "tici-lsmc", [
 </s> add         deviceStage("LSM + MMC", "tici-lsmc", ["UNSAFE=1"], [ </s> remove         deviceStage("BMX + LSM", "tici-bmx-lsm", [
 </s> add         deviceStage("BMX + LSM", "tici-bmx-lsm", ["UNSAFE=1"], [
    def extra = env.collect { "export ${it}" }.join('\n');

      }
  
    def extra = env.collect { "export ${it}" }.join('\n');

      docker.image('ghcr.io/commaai/alpine-ssh').inside('--user=root') {
        lock(resource: "", label: deviceType, inversePrecedence: true, variable: 'device_ip', quantity: 1) {
          timeout(time: 20, unit: 'MINUTES') {
            device(device_ip, "git checkout", extra + "\n" + readFile("selfdrive/test/setup_device_ci.sh"))
keep add keep keep keep keep
 jenkins speedup (#29869)

* jenkins speedup

* cleanup 
Jenkinsfile