$ PWD и $ WORKSPACE отличаются в Jenkins

#jenkins #environment-variables #jenkins-cli

#дженкинс #переменные среды #jenkins-cli

Вопрос:

В моей работе есть этап сборки оболочки выполнения сборки, я помещаю только эти две команды в:

 echo $WORKSPACE
echo $PWD
  

И результат действительно меня смутил:

   echo /home/jenkins/workspace/tradefed/test_deployment
/home/jenkins/workspace/tradefed/test_deployment
  echo /media/d/workspace/tradefed/test_deployment
/media/d/workspace/tradefed/test_deployment
  

Почему значения $WORKSPACE и $PWD отличаются?

Обновление 2019/03/18:

Как упоминал @PavelAnikhouski, $WORKSPACE устанавливается относительно вашей $JENKINS_HOME , $PWD является переменной окружения ОС, ссылается на текущий рабочий каталог в файловой системе, поэтому они не должны быть одинаковыми.

Но я все еще не понимаю, $WORKSPACE почему у Jenkins есть $WORKSPACE , но выполнить shell в другом рабочем каталоге?

Комментарии:

1. Почему они должны быть одинаковыми? Одна переменная — это «Абсолютный путь к каталогу, назначенному сборке в качестве рабочей области», вторая — это рабочий каталог вашей ОС Linux

2. Не могли бы вы объяснить более подробно? В чем разница между the workspace of build и my Linux working directory ?

3. Вы можете просмотреть список переменных Jenkins env на your_server_address/env-vars.html Они управляются самой службой Jenkins. $WORKSPACE устанавливается относительно вашего $ JENKINS_HOME (где установлен Jenkins) $PWD — переменная среды операционной системы, относится к текущему рабочему каталогу в файловой системе. Я бы не ожидал, что эти значения будут одинаковыми

4. @PavelAnikhouski Я понял, спасибо. Но я все еще в замешательстве $WORKSPACE . Зачем нужен Jenkins $WORKSPACE , но запускать shell в другом рабочем каталоге?

5. На самом деле они одинаковы для меня, по крайней мере, изначально. Я бы ожидал, что оболочка будет запускаться в каталоге рабочей области проекта. Вы можете изменить это, выполнив cd /some/other/place но это имеет смысл по умолчанию. Есть ли что-то еще в вашем скрипте, что изменяет, в каком каталоге вы находитесь?