Невозможно выполнить команду ROS в задании jenkins - PullRequest
0 голосов
/ 04 марта 2019

Итак, что я хочу сделать, это просто запустить «список Роспака» в задании Дженкинса.Мой Jenkinsfile довольно прост:

pipeline {
  agent any
  stages {
    stage('Test') {
        steps {
             sh '. /opt/ros/kinetic/setup.bash'
             sh 'rospack list'
        }
    }
  }
}

Ни исходная команда, ни rospack не могут быть запущены внутри задания jenkins.Но когда я захожу с учетной записью jenkins и делаю то же самое, что указано выше, это работает.Так что я действительно запутался, что не так с Jenkinsfile.Заранее спасибо за помощь!

  • ОС: Ubuntu 16.04 LTS
  • Jenkins: 2.150.3
  • ROS: кинетическая

Error info from Jenkins job.Test with jenkins account

1 Ответ

0 голосов
/ 04 марта 2019

ОК, насколько я понимаю, одна команда sh выполняется в одном терминале, поэтому источник PATH не будет принят второй командой sh.Работает при использовании / bin / bash вместо '.':

**test.sh**
#! /bin/bash
. /opt/ros/kinetic/setup.bash
rospack list

**Jenkinsfile**
pipeline {
 agent any
 stages {
   stage('Test') {
     steps {
          sh '/bin/bash /opt/ros/kinetic/setup.bash'
     }
   }
 }

}

...