#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
но это имеет смысл по умолчанию. Есть ли что-то еще в вашем скрипте, что изменяет, в каком каталоге вы находитесь?